首页 > 代码库 > 读入一个数n,计算其各位数字之和,用汉语拼音写出和的每一位数字

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

  1. 读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。★☆

  2. 读入一个整数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

wKiom1QAdynysJN8AALsNBUKpXM168.jpg

本文出自 “路漫漫兮” 博客,请务必保留此出处http://wangxin88.blog.51cto.com/3228434/1546668

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