> 文章列表 > pat乙级1002

pat乙级1002

pat乙级1002

关键思路:

大数输入问题
1010010100 用int和long long都是远远不够的,因此用字符数组来输入,然后再转换成整数

数字拼音的转换
本题用最基本的方法,使用switch开关语句实现转换

拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。
此类问题一般使用以下代码实现:

for(i=0; i < n; i++){
printf(“%d”, a[i]);
if(i < n-1){
printf(" “);
}
else{
printf(”\\n");
}
}

关键点:

绝对值在 109109范围以内的整数都可以定义成int型

如果在 109109以上,在 10181018 以内用long long型来存

#include<stdio.h>

#define N 101

int main()

{

int sum=0,i=0,a[N];char str[N];gets(str);while(str[i]!='\\0'){sum+=str[i]-'0';i++;}i=0;while(sum){a[i]=sum%10;sum=sum/10;i++;}i--;while(i>=0){switch(a[i]){case 0:printf("ling");break;case 1:printf("yi");break;case 2:printf("er");break;case 3:printf("san");break;case 4:printf("si");break;case 5:printf("wu");break;case 6:printf("liu");break;case 7:printf("qi");break;case 8:printf("ba");break;default:printf("jiu");}if(i>0){printf(" ");}else{printf("\\n");}i--;}return 0;

}