PAT乙1002 写出这个数

题目链接:https://pintia.cn/problem-sets/994805260223102976/problems/994805324509200384

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

输入格式:

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

输出格式:

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

输入样例:

1234567890987654321123456789

输出样例:

yi san wu

分析:

将输入数据存入字符串,因为n小于10^100,所以每位和用int即可存下,然后输出结果即可。

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 // 输出字符串数组
 4 char *res[] = {"ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"};
 5 // 递归输出,用函数作为栈
 6 void output(int sum, int count)
 7 {
 8     if (sum / 10)
 9         output(sum / 10, 1);
10     printf("%s", res[sum % 10]);
11     if (count != 0)
12         printf(" ");
13 }
14 int main()
15 {
16     int sum = 0;
17     char num[100 + 50];
18     cin >> num;
19     for (int i = 0; i < strlen(num); i++)
20         sum += num[i] - '0';
21     output(sum, 0);
22     return 0;
23 }

 

 
 
posted @ 2020-04-24 17:28  sqdtss  阅读(99)  评论(0编辑  收藏  举报