输入一个不超过一百位的数字,把他每一位上的数字相加,然后用英语输出最后相加的数,比如题中结果是15,就输出one five
100位数已经远远超出整型范围,所以用字符串存储;
输出时借鉴了大佬的思路,将sum转成字符串型,然后直接按位输出即可,省去很多判断的步骤
代码
#include<iostream>
#include<cstring>
using namespace std;
string english[]={"zero","one","two","three","four","five","six","seven","eight","nine"};
int main()
{
string n;
int sum=0,cnt=0;
getline(cin,n);
for(int i=0;i<n.size();i++)
{
sum+=n[i]-'0';
}
string ssum=to_string(sum);
for(int i=0;i<ssum.size();i++)
{
cnt==0?cout<<english[ssum[i]-'0']:cout<<" "<<english[ssum[i]-'0'];
cnt++;
}
return 0;
}