使用字符串先读入所有的数字,因为此题已经超过了int或者其他的数字类型的范围,用字符和数字之间的相互变换可能可以更快的完成此题。
最后一个没空格还是必要的处理。
#include <string> #include <iostream> using namespace std; int main(void){ int sum; string num; cin>>num; for(auto s:num){ sum+=s-‘0‘; } //cout<<sum; int fl=0; num=to_string(sum); for(auto s:num){ if (fl!=0) cout<<" "; switch(s){ case ‘0‘:cout<<"zero";break; case ‘1‘:cout<<"one";break; case ‘2‘:cout<<"two";break; case ‘3‘:cout<<"three";break; case ‘4‘:cout<<"four";break; case ‘5‘:cout<<"five";break; case ‘6‘:cout<<"six";break; case ‘7‘:cout<<"seven";break; case ‘8‘:cout<<"eight";break; case ‘9‘:cout<<"nine";break; } fl++; } return 0; }
原文:http://www.cnblogs.com/mqacm/p/4368482.html