B1002 写出这个数

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

输入格式:

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

输出格式:

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

输入样例:

1234567890987654321123456789

输出样例:

yi san wu


 1 #include<cstdio>
 2 #include<string.h>
 3 #include<string>
 4 #include<map>
 5 #include<iostream>
 6 using namespace std;
 7 char str[110];
 8 int main()
 9 {
10     map<int,string> mp;
11     mp[0]="ling";
12     mp[1]="yi";
13     mp[2]="er";
14     mp[3]="san";
15     mp[4]="si";
16     mp[5]="wu";
17     mp[6]="liu";
18     mp[7]="qi";
19     mp[8]="ba";
20     mp[9]="jiu";
21     while(scanf("%s",str)!=EOF){
22         int len=strlen(str);
23         int sum=0,r[100],k=0;
24         for(int i=0;i<len;i++){
25             sum=sum+(str[i]-'0');
26         }
27         while(sum!=0){
28             int a=sum%10;
29             r[k++]=a;
30             sum=sum/10;
31         }
32         for(int i=k-1;i>=0;i--){
33             cout<<mp[r[i]];
34             if(i!=0){
35                 cout<<" ";
36             }
37         }
38         cout<<endl;
39     }
40     return 0;
41 }

Mist Note: map函数是一个好东西。留意输出格式,还有循环取出每一位数字。

猜你喜欢

转载自www.cnblogs.com/mist2019/p/10348123.html
今日推荐