- 读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。★☆
- 读入一个整数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。★★
输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100。
输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。
输入样例: 1234567890987654321123456789 输出样例: yi san wu
#include<stdio.h> #include<ctype.h> void int_to_string(int n) { switch (n) { case 0: printf("%s", "ling"); break; case 1: printf("%s", "yi"); break; case 2: printf("%s", "er"); break; case 3: printf("%s", "san"); break; case 4: printf("%s", "si"); break; case 5: printf("%s", "wu"); break; case 6: printf("%s", "liu"); break; case 7: printf("%s", "qi"); break; case 8: printf("%s", "ba"); break; case 9: printf("%s", "jiu"); break; default: break; } } void string_output(int num) { if (num / 10) { string_output(num / 10); if ((num / 10) != 0) { printf(" "); } int_to_string(num % 10); } else { int_to_string(num); } } int get_Input_Sum() { char ch; int sum = 0; while ((ch = getchar()) != ‘\n‘) { if (isdigit(ch)) { sum += ch - 0x30; } } return sum; } void int_to_reverse(int num) { if (num < 0) { num = -num; int_to_string(-1); printf(" "); string_output(num); } else if (num == 0) { int_to_string(0); } else { string_output(num); } } int main() { int_to_reverse(get_Input_Sum()); return 0; }
output:
12345678909876543210213123 yi ling er
时间: 2024-10-28 10:05:57