读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
输入格式:
每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10 100。
输出格式:
在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。
输入样例:
1
| 1234567890987654321123456789
|
输出样例:
题目链接
C++版本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| #include <iostream> #include <string> using namespace std;
int main() { string s; cin >> s; int sum = 0; for (int i = 0; i < s.size(); i++) { sum += s[i] - '0'; } string py[10] = {"ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"}; string num = to_string(sum); for (int i = 0; i < num.size(); i++) { if (i) cout << " "; cout << py[num[i] - '0']; } return 0; }
|
下面是 C 语言版本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| #include <stdio.h> int main() { int c; int sum = 0; while ((c = getchar()) != '\n') { sum = sum + c - '0'; } int out[10] = {0}; int i = 0; while (sum != 0) { out[i] = (sum % 10); ++i; sum = sum / 10; } i = i - 1; while (i + 1) { switch (out[i]) { case 0: printf("ling"); break; case 1: printf("yi"); break; case 2: printf("er"); break; case 3: printf("san"); break; case 4: printf("si"); break; case 5: printf("wu"); break; case 6: printf("liu"); break; case 7: printf("qi"); break; case 8: printf("ba"); break; case 9: printf("jiu"); break; } if (i != 0) { printf(" "); } i--; } return 0; printf("\n"); }
|