【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;
} 

猜你喜欢

转载自blog.csdn.net/weixin_43456345/article/details/83345494