PAT甲级1005水题飘过

题目分析:用一个字符串输入之后遍历每一位求和后,不断%10获取最后一位存储下来,逆序用对应的英文单词输出(注意输入为0的情况)

 1 #include
 2 #include<string>
 3 using namespace std;
 4 
 5 string a[10] = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
 6 int b[10];
 7 
 8 int main(){
 9     string s;
10     while(cin>>s){
11         int len = s.size();
12         int sum = 0;
13         for(int i = 0; i < len; i++){
14             int x = s[i] - '0';
15             sum += x;
16         }
17 //        cout<
18         int cnt = 0;
19         if(sum == 0){
20             b[cnt++] = 0;
21         }else{
22             while(sum != 0){
23                 int x = sum % 10;
24                 sum /= 10;
25                 b[cnt++] = x;
26             }
27         }
28         for(int i = cnt-1; i >= 0; i--){
29             if(i != cnt-1) printf(" ");
30             cout<<a[b[i]];
31         }
32         printf("\n");
33     }
34     return 0;
35 }

 

你可能感兴趣的:(PAT甲级1005水题飘过)