PTA 1002 写出这个数

问题描述:

读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。

输入格式:

每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10​100​​。

输出格式:

在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。

输入样例:

1234567890987654321123456789

输出样例:

yi san wu

解决方案思考:
输入数字过长,考虑使用字符串来解决
源代码:
 1 #include <iostream>
 2 #include <string>
 3 #include <sstream>
 4 using namespace std;
 5 
 6 
 7 int main()
 8 {
 9     int strl,str2,temp,sum=0;
10     string number,sum1,result,temp1="";
11     cin>>number;
12     strl=number.length();
13 
14     for(int i=0;i<strl;i++)
15     {
16         temp=number[i]-'0';//单个字符转换为数字
17         sum+=temp;
18 
19     }
20 
21     sum1=to_string(sum);
22     str2=sum1.length();
23     for(int j=0;j<str2;j++)
24     {
25         switch(sum1[j])
26         {
27             case '1':temp1="yi";break;
28             case '2':temp1="er";break;
29             case '3':temp1="san";break;
30             case '4':temp1="si";break;
31             case '5':temp1="wu";break;
32             case '6':temp1="liu";break;
33             case '7':temp1="qi";break;
34             case '8':temp1="ba";break;
35             case '9':temp1="jiu";break;
36             case '0':temp1="ling";break;
37 
38         }
39         
40           cout<<temp1;
41           if(j<str2-1)//最后不输出空格
42           {
43               cout<<" "; 
44           }
45     }
46 
47 
48 
49     system("pause");
50     return  0;
51 }

结果:

PTA 1002 写出这个数



 
上一篇:hdu 6495 dp


下一篇:LeetCode:1002.查找常用字符