读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100。
输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1空格,但一行中最后一个拼音数字后没有空格。
输入样例:1234567890987654321123456789输出样例:
yi san wu
代码如下:
#include"stdio.h"
void Printf(int num)
{
switch (num)
{
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;
}
}
void Rest(int sum,int num)
{
int rest=0;
num++;//计算当前有为第几位数字,输出空格时用。
rest = sum%10;
if (sum/10==0)
{
//当递归到最高位时,直接输出。
Printf(rest);
if (num>1)
{
printf(" ");
}
return;
}
else
{
sum/=10;
Rest(sum,num);
//输出当前位。
Printf(rest);
if (num>1)
{
printf(" ");
}
}
}
int main()
{
char n[100];
int i=0,sum=0,num=0;
scanf("%s",n);
while(n[i]!='\0')
{
sum+=n[i]-'0';
i++;
}
Rest(sum,num);
return 0;
}