#include<stdio.h>
#include<math.h>
//这个程序虽然是我写的,但是它设计的的确很2B。 我觉得不写注释,过段时间我自己都不知道自己写的什么。
//测试用例 0 ,123121123,-123121256,1000 ,10023,543000.
int main()
{
int num = 0;
int a = 0;
scanf("%d",&num);
if(num < 0) //
{
printf("fu ");
num = abs(num);
}
if(num == 0)
{
printf("ling");
return 0;
}
int num_ = 0;
int flag = 0;
int b = num;
for(int i = 0; 0 != b ;i++) //检测数字的位数。
{
b /= 10;
flag++;
}
for(int i = flag - 1; 0 != num; i--) //将数字倒过来
{
num_ += pow(10,i) * (num % 10);
num /= 10;
}
for(int i = 0; 0 != num_ || flag; i++)//这里中间的判断使用把100倒过来变成1,输出会出错的问题给解决了。
{
a = num_ % 10; //这里是每次去分离最低位数字,所以必须在前面把数字给倒过来。
switch(a) //将数字倒过来存在这样一个问题,100——会被变成1,这样无法输出正确结果。
{
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;
}
}
num_ /= 10;
flag--;
if(0 != flag) //解决输出格式问题
{
printf(" ");
}
}
return 0;
}