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 }