|
题目:中文数字
时间限制 1000 毫秒
内存限制 32768 K字节
问题描述
输入一个整数,输出它用中文的表示形式。
输入
输入包含多行,每行一个整数(<=2000000000)。
输出
把输入的整数用中文表示出来,每行一个输出。
输入样例
12345
87654321
10001
输出样例
一万二千三百四十五
八千七百六十五万四千三百二十一
一万零一
我的算法:
#include <stdio.h>
main()
{
char *ch[11];
ch[0]="\0";ch[1]="一";ch[2]="二";ch[3]="三";ch[4]="四";
ch[5]="五";ch[6]="六";ch[7]="七";ch[8]="八";ch[9]="九";ch[10]="零";
char *dw[6];
dw[2]="十";dw[3]="百";dw[0]="千";dw[5]="万";dw[4]="亿";dw[1]="\0";
char number[11];int last,n,m,i,j,have;
while(1)
{
scanf("%s",number);
last = 1;have = 0;
for(i=0;i<11&&number[i]!='\0';i++);
for(j=0;j<i;j++)
{
n = number[j]-48;
m = i-j;
if(have == 0&& m>4 && m<9 && n) have =1;
if(last == 0 && n) printf(ch[10]);
printf(ch[n]); if(n) printf(dw[m%4]);
if(m%4 == 1)
{
if( m == 5 && have) printf(dw[5]);
if( m == 9 ) printf(dw[4]);
}
last = n;
}
printf("\n");
}
}
结果被告之时间超出(时间限制 1000 毫秒),希望高手出招.不胜感激. |
|