码迷,mamicode.com
首页 > 其他好文 > 详细

PAT_1002 写出这个数

时间:2016-08-18 21:17:18      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:

宝宝不开心了。自从回家开始百练就上不去POJ也上不去,今天突然HDU也上不去了,PAT25分的题目都快更新完了。我就按顺序往下面更新了。回学校之后题目质量能高出不少= =。

问题描述:

             读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。

输入格式:

             每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100

输出格式:

             在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。

输入样例:

1234567890987654321123456789

输出样例:

yi san wu

代码如下:

 1 #include <cstdio>
 2 #include <cstring>
 3 int main()
 4 {
 5     char a[10005];
 6     char num[10][5]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
 7     gets(a);
 8     int ans=0; 
 9     for(int i=0;i<strlen(a);i++){
10         ans+=a[i]-0;
11     }
12     char out[10005];
13     int j=0;
14     while(ans){
15         out[j++]=ans%10;
16         ans/=10;
17     }
18     for(int i=j-1;i>=0;i--){
19         printf("%s",num[out[i]]);
20         if(i!=0){
21             printf(" ");
22         }else{
23             printf("\n");
24         }
25     } 
26     
27     return 0; 
28 } 

思路解析:

              本题还算挺简单的。但是最后一个循环如果写成int i=strlen(out)-1;i>=0;i++ 的话第二个测试点就不过,答案就算部分通过。= =想了半天也没想明白。但是机智的我改成int i=j-1;i>=0;i++ 结果抱着试试看的心理= =结果居然AC了。还是有待研究滴。

PAT_1002 写出这个数

标签:

原文地址:http://www.cnblogs.com/xzt6/p/5785283.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!