B1002写出这个数

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

输入格式:

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

输出格式:

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

输入样例:

1234567890987654321123456789

输出样例:

yi san wu

思路:

遍历字符串,将字符转化成数字相加,求和;

将sum转化成字符串是str1,遍历此字符串,然后将字符转化成数字作为下标,完成映射。

 

 1 #include <iostream>
 2 #include <string>
 3 using namespace std;
 4 int main() {
 5     string str;
 6     int sum = 0;
 7     string change[11] = { "ling","yi","er","san","si","wu","liu","qi","ba","jiu","shi" };
 8     cin >> str;
 9     for (int i = 0; i < str.length(); i++) {
10         sum += str[i] - '0';
11     }
12     string str1;
13     str1 = to_string(sum);
14     for (int i = 0; i < str1.length(); i++) {
15         if (i != 0)cout << " ";
16         cout << change[str1[i]-'0'];
17     }
18     return 0;
19 }

 

posted @ 2020-02-11 18:01  PennyXia  阅读(121)  评论(0编辑  收藏  举报