题目要求:
把无符号数字N的每一位相加求和,得到的数的每一位用英文(zero,one,two,three,…)输出。
实现:
因为N很大,用字符串进行输入,输入之后把每一位加起来(记得减去’0’)得到sum(因为N无符号,所以sum不为负数),
sum==0直接输出‘zero’;sum>0,取每一位用英文输出即可。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
char s[105];
int k[15];
int main()
{
scanf("%s",s);
int sum=0;
for(int i=0;s[i];i++)
sum+=s[i]-'0';
if(sum==0)
{
printf("zero");
return 0;
}
memset(k,0,sizeof(k));
k[0]=1;
while(sum>0)
{
k[k[0]]=sum%10;
sum/=10;
k[0]++;
}
bool flag=true;
for(int i=k[0]-1;i>=1;i--)
{
if(flag)flag=false;
else printf(" ");
if(k[i]==0)printf("zero");
else if(k[i]==1)printf("one");
else if(k[i]==2)printf("two");
else if(k[i]==3)printf("three");
else if(k[i]==4)printf("four");
else if(k[i]==5)printf("five");
else if(k[i]==6)printf("six");
else if(k[i]==7)printf("seven");
else if(k[i]==8)printf("eight");
else if(k[i]==9)printf("nine");
}
return 0;
}