PTA1002 写出这个数

发布时间 2023-04-24 22:15:05作者: 轻挼草色

一、问题描述:

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

输入格式:

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

输出格式:

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

输入样例:

1234567890987654321123456789

输出样例:

yi san wu

二、设计思路:

  1. 输入正整数;
  2. 将各位数字加起来求和为b,对b求余存入数组中;
  3. 将数组中的数字翻译倒序输出。

三、代码实现:

 1 #include <iostream>
 2 #include <cstring>
 3 using namespace std;
 4 int main()
 5 {
 6     char a[100];
 7     int b=0;//记录各位数字之和
 8     cin>>a;
 9     for(int i=0;a[i]!='\0';i++)
10     {
11         b+=a[i]-'0';
12     }
13     string c[10]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
14     char m[100]={0};
15     int i=0;
16     for( ;b>0;i++)//把b存数组中
17     {
18         m[i]=b%10;
19         b/=10;
20     }
21     for(i-=1;i>0;i--)
22     {
23         cout<<c[m[i]]<<" ";
24     }
25     cout<<c[m[0]]<<endl;
26     return 0;
27 }