3649 - 读数

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 128 MB

给一个整数不超过9位,你要将这些数字用中文读出来.

题目输入

输入一组整数

题目输出

输出对应的读法

输入/输出样例

输入格式

-123456789
100800

输出格式

Fu yi Yi er Qian san Bai si Shi wu Wan liu Qian qi Bai ba Shi jiu
yi Shi Wan ling ba Bai

C++解答

#include<stdio.h>  
int arr[9];  
char brr[9][5]={"Yi","Qian","Bai","Shi","Wan","Qian","Bai","Shi"};  
char crr[10][5]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};  
int flag = 0,l = 0;
void output(int i,int x)  
{    
    if(x)  
    {  
        if(l++)  
        printf(" ");  
        if(flag)  
            printf("ling ");  
        flag=0;  
        if(i<8)  
        printf("%s %s",crr[x],brr[i]);  
        else  
            printf("%s",crr[x]);  
    }  
    else  
    {  
        if(i==4)  
        {  
            printf(" Wan");  
            flag=0;  
            return;  
        }  
        if(i==8)  
        {  
            return;  
        }         
        flag=1;  
    }  
}  
  
int main()  
{  
    int x,i,j;  
   while( scanf("%d",&x)!=EOF){
	   flag = l = 0;
    int arr[9];  
    if(x<0)  
    {  
        x=-x;  
        printf("Fu ");    
    }  
    if(x==0)  
    {  
        printf("ling\n");  
        return 0;  
    }  
    for(i=0,j=100000000;i<9;i++,j/=10)  
    {  
        arr[i]=(x/j)%10;  
    }  
    for(i=0;i<9;i++)  
    {  
        if(arr[i]!=0)  
            break;  
    }  
    for(;i<9;i++)  
    {  
        output(i,arr[i]);  
    }  
    printf("\n"); 
   }
    return 0;  
}