参考文献
C++ 代码
#include<bits/stdc++.h>
using namespace std;
const int N=1e7;//定义
int sum,s[N],t;
string num,name[10]={"zero","one","two","three","four","five","six","seven","eight","nine"};
int main()
{
cin>>num;//输入
for(int i=0;i<num.size();i++) sum+=num[i]-'0';//把总和算出来
if(num!="0"){//特判0
for(int i=0;sum*10!=sum;i++){//当前sum没有循环第二次时就循环
s[i]=sum%10;//存入sum的个位
sum/=10;//去掉个位
t++;//位数加一
}
for(int i=t-1;i>=0;i--) cout<<name[s[i]]<<' ';//因为是倒着存入的,所以倒着循环。输出当前数的英文
}else cout<<"zero";//是0就输出0
}
本蒟蒻第一次写题解,如有不足,神犇们勿喷~