思路:
每次读入一位数,计算sum,最后提取sum的每一位,转成英文输出。
注意N<10^100,N不能是int、Long等类型,最好将其当做字符,用getchar(),每一位每一位地输入。可知9*100=900,sum最多3位。
#include <cstdio>
#include <cstdlib>
void spell(int x){
switch(x){
case 1: printf("one");return;
case 2: printf("two");return;
case 3: printf("three");return;
case 4: printf("four");return;
case 5: printf("five");return;
case 6: printf("six");return;
case 7: printf("seven");return;
case 8: printf("eight");return;
case 9: printf("nine");return;
case 0: printf("zero");return;
}
}
int main(){
char num; //每一位,设成char类型
int sum=0, dit[3], t=0; //sum为和,dit为sum的每一位,sum最多3位,t记录sum的每一位
num = getchar();
while (num != '\n'){ //若不是空格,就计算sum
sum += num - '0';
num = getchar();
}
while(sum!=0){ //记录sum的每一位
dit[t++] = sum % 10;
sum /= 10;
}
spell(dit[t-1]);
for (int i=t-2;i>=0;i--){
printf(" ");
spell(dit[i]);
}
return 0;
}