1005 Spell It Right (20 分)
题目链接
一、算法分析
用字符串读入,计算总和,然后把每一位分离开来,然后就把它对应的英文形式输出就好
二、测试点
我错在测试点3,问题出在没有考虑只输入一个0的情况,所以加一个特判就行。
三、代码实现
#include<bits/stdc++.h>
using namespace std;
#define N 105
#define M 15
char eng[M][M] = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
int ans[N], t, sum;
int main(){
string s;
cin>> s;
int len = s.size();
for(int i = 0; i < len; ++ i)
sum += s[i] - '0';
if(sum == 0){
printf("zero");
return 0;
}
while(sum){
ans[++ t] = sum % 10;
sum /= 10;
}
for(int i = t; i >= 1; -- i){
if(i == t) printf("%s", eng[ans[i]]);
else printf(" %s", eng[ans[i]]);
}
return 0;
}