https://pintia.cn/problem-sets/994805260223102976/problems/994805324509200384
#include<bits/stdc++.h>
using namespace std;
string a[15]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
vector<int>ve;
int main(void)
{
string s; cin>>s;
int sum=0;
for(int i=0;i<s.size();i++) sum+=s[i]-'0';
while(sum) ve.push_back(sum%10),sum/=10;
for(int i=ve.size()-1;i>=0;i--)
{
cout<<a[ve[i]];
if(i) cout<<" ";
}
}
注意: 最后的空格不要输出
柳神的代码,太秒了,将结果sum转换成字符串,这样我们就可以直接取每一位了,不得不说这真的太秒了。
#include <iostream>
#include <string>
using namespace std;
int main() {
string s;
cin >> s;
int sum = 0;
string str[10] = {"ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"};
for (int i = 0; i < s.length(); i++)
sum += (s[i] - '0');
string num = to_string(sum);
for (int i = 0; i < num.length(); i++) {
if (i != 0) cout << " ";
cout << str[num[i] - '0'];
}
return 0;
}