HDU 1727 Hastiness纯粹的英文单词拼写(就当背英文数字的单词啦)

本文提供了一段ACM竞赛题目的解决方案,该程序将整数转换为英文表述,覆盖了从0到999999的范围。通过使用预定义的数组来表示个位数、十位数及特定的英文词汇,实现了简洁高效的转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1727

AC代码:

#include <stdio.h>
char a[21][10]={
"zero","one","two","three","four","five",
"six","seven","eight","nine","ten",
"eleven","twelve","thirteen","fourteen", "fifteen",
"sixteen","seventeen","eighteen","nineteen","twenty"
};
char b[10][10]={
"twenty","thirty","forty","fifty",
"sixty","seventy","eighty","ninety"
};
int main(){
	int n,q;
	while(~scanf("%d",&n)){
		if(!n){
			printf("zero\n");
			continue;
		}
		if(n>=1000){
			q=n/1000;
			printf("%s thousand",a[q]);
			n-=q*1000;
			if(!n){
				printf("\n");
				continue;
			}
			printf(" and ");
		}
		if(n>=100){
			q=n/100;
			printf("%s hundred",a[q]);
			n-=q*100;
			if(!n){
				printf("\n");
				continue;
			}
			printf(" and ");
		}
		if(n){
			if(n<=20)
				printf("%s\n",a[n]);
			else
			{
				q=n/10;
				printf("%s",b[q-2]);
				n-=q*10;
				if(!n){
					printf("\n");
					continue;
				}
				printf ("-%s\n", a[n]);
			}
		}
	}
	return 0;
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值