【PAT-A】1005. Spell It Right 写题记录

思路:

每次读入一位数,计算sum,最后提取sum的每一位,转成英文输出。

注意N<10^100,N不能是int、Long等类型,最好将其当做字符,用getchar(),每一位每一位地输入。可知9*100=900,sum最多3位。

#include <cstdio>
#include <cstdlib>
void spell(int x){
	switch(x){
		case 1: printf("one");return;
		case 2: printf("two");return;
		case 3: printf("three");return;
		case 4: printf("four");return;
		case 5: printf("five");return;
		case 6: printf("six");return;
		case 7: printf("seven");return;
		case 8: printf("eight");return;
		case 9: printf("nine");return;
		case 0: printf("zero");return;
	}
}
int main(){
	char num; //每一位,设成char类型 
	int sum=0, dit[3], t=0;  //sum为和,dit为sum的每一位,sum最多3位,t记录sum的每一位 
	num = getchar();
	while (num != '\n'){ //若不是空格,就计算sum 
		sum += num - '0';
		num = getchar();
	}
	while(sum!=0){ //记录sum的每一位 
		dit[t++] = sum % 10;
		sum /= 10;
	}
	spell(dit[t-1]); 
	for (int i=t-2;i>=0;i--){
		printf(" ");
		spell(dit[i]);
	}	
	return 0;
} 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值