读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100。
输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。
输入样例:1234567890987654321123456789输出样例:
yi san wu
#include<stdio.h>
void nianshuzi(int x)
{
int mask = 1;
int t = x;
while ( t>9 ) {
t /= 10;
mask *=10;
}
do {
int d = x / mask;
switch ( d ) {
case 10:
case 9:
printf("jiu");
break;
case 8:
printf("ba");
break;
case 7:
printf("qi");
break;
case 6:
printf("liu");
break;
case 5:
printf("wu");
break;
case 4:
printf("si");
break;
case 3:
printf("san");
break;
case 2:
printf("er");
break;
case 1:
printf("yi");
break;
case 0:
printf("ling");
break;
default:
printf("\n");
break;
}
if ( mask > 9 ) {
printf(" ");
}
x %= mask;
mask /= 10;
} while ( mask > 0 );
}
int main()
{
char a=0;
int b=0,c=0,sum=0;
do{
scanf("%c",&a);
c=a-48;
if(a>=0)
{
if(a=='1')
b=b+1;
else if(a=='2')
b=b+2;
else if(a=='3')
b=b+3;
else if(a=='4')
b=b+4;
else if(a=='5')
b=b+5;
else if(a=='6')
b=b+6;
else if(a=='7')
b=b+7;
else if(a=='8')
b=b+8;
else if(a=='9')
b=b+9;
else if(a=='0')
b=b+0;
}else goto out;
}while(c>=0);
nianshuzi(b);
out:
return 0;
}