模10取余并求和,然后输出结果每一位对应的字符串就好了。
#include<bits/stdc++.h> using namespace std; string ss[15] = {"ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"}; int main(){ string s; cin>> s; int t = 0; int len = s.size(); for(int i = 0; i < len; ++ i){ int lin = s[i] - '0'; t += lin; } int chu = 1; while(t >= chu) chu *= 10; for(int i = 1; ; ++ i){ chu /= 10; int k = t / chu; t -= k * chu; if(chu != 1) cout<< ss[k]<< ' '; else{ cout<< ss[k]; break; } } return 0; }