
 思路:不仅超出int还超出Longlong,直接用string类型定义n,for循环来遍历每一位字符然后转换成数字进行累加,再用to_string把数字和转换成字符串,再用for循环把数字和的每一位定位到pinyin字符串数组上输出
#include <iostream>
using namespace std;
int main() {
    string pinyin[] = {"ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"};
    string n;
    cin >> n;
    int sum = 0;
    for (char c : n) {
        sum += c - '0';  // 将字符转换为数字并累加
    }
    string sum_str = to_string(sum);  // 将和转换为字符串
    for (int i = 0; i < sum_str.length(); i++) {
        int digit = sum_str[i] - '0';  // 获取和的每一位数字
        cout << pinyin[digit];
        if (i != sum_str.length() - 1) {
            cout << " ";
        }
    }
    return 0;
}
 
注意:
 用int来定义n
    int n;
    cin>>n;
    cout<<n;
 
输入:1234567890987654321123456789
 输出:2147483647
long long
 输出:9223372036854775807
 超出long long范围
将字符转换为数字并累加
int sum = 0;
for (char c : n) {
    sum += c - '0';  // 将字符转换为数字并累加
}
                


















