PAT乙级:1002 写出这个数 (20分)
原创
©著作权归作者所有:来自51CTO博客作者feilinli的原创作品,请联系作者获取转载授权,否则将追究法律责任
PAT乙级:1002 写出这个数 (20分)
#include<stdio.h>
#include<math.h>
int main(void)
{
char a[1000];
gets(a);
int sum = 0;
for(int i = 0;a[i] != '\0';i++)
{
sum += a[i] - 48;
}
int m;
int len;
len = (int)log10(sum) + 1;
for(int j=1 ; j <= len; j++)
{
m = sum / pow(10,len-j);
int w;
w = m % 10;
if(j != len)
{
switch(w)
{
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;
}
}
else
{
switch(w)
{
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;
}
}
}
return 0;
}