1002. 写出这个数 (20)PAT乙级真题
来源:互联网 发布:vue引入第三方js 编辑:程序博客网 时间:2024/06/06 15:01
1002. 写出这个数 (20)
读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
输入格式:
每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100。
输出格式:
在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。
输入样例:1234567890987654321123456789
输出样例:yi san wu
这题的数据n<10的100次方,即最后各位的数字总和最大是3位数。我一开始把所有数据都当成3位数处理的,数字翻
转有点小问题,后来加了判断位数的片段才AC,还有要注意最后结果为0的特殊情况,下面是我的代码,有点长···#include<stdio.h>#include<string.h>int main(void){ int i=0,s=0,b,c; char a[200]; gets(a); while(a[200]!='\0') { s+=a-48;i++; } c=0; if (s>99) //判断是否是3位数 { s=( ((s%10)*100) + (((s-(s/100)*100)/10)*10) + (s/100) ); c=2; } else { if(s>9) //判断是否是2位数,一位数就不用处理了 { s=((s/10)+(s%10)*10); c=1; } } i=0; if (s==0) printf("ling"); //判断0的特殊情况 do { b=s%10;s=s/10; if ((b==0)&&(i!=0)) printf("ling"); else if (b==1) printf("yi"); else if (b==2) printf("er"); else if (b==3) printf("san"); else if (b==4) printf("si"); else if (b==5) printf("wu"); else if (b==6) printf("liu"); else if (b==7) printf("qi"); else if (b==8) printf("ba"); else if (b==9) printf("jiu"); if (i<c) printf(" "); i++; }while(i<=c); putchar('\n'); return 0;}
阅读全文
0 0
- 1002. 写出这个数 (20)-PAT乙级真题
- 1002. 写出这个数 (20)PAT乙级真题
- PAT 乙级 真题 1002. 写出这个数
- 【PAT乙级真题及训练集】1002. 写出这个数 (20)
- PAT乙级真题及训练集(21)--1002. 写出这个数 (20)
- 1002. 写出这个数 (20)-浙大PAT乙级真题java实现
- PAT 乙级 1002. 写出这个数 (20)
- PAT-乙级-1002. 写出这个数 (20)
- PAT乙级.1002. 写出这个数 (20)
- PAT乙级 1002. 写出这个数 (20)
- PAT乙级1002. 写出这个数 (20)
- 1002. 写出这个数 (20)-PAT乙级
- PAT 乙级 1002. 写出这个数 (20)
- PAT乙级 1002. 写出这个数 (20)
- PAT乙级1002. 写出这个数 (20)
- PAT乙级 1002. 写出这个数 (20)
- [PAT乙级]1002. 写出这个数 (20)
- PAT乙级1002. 写出这个数 (20)
- 跟大师学习系统编程---操作系统加载(1)
- [容斥] Topcoder SRM div1-3 12004. SetAndSet
- 实现右键屏蔽菜单的代码
- 二进制、八进制、十进制、十六进制
- 基于kurento的RtpEndpoint元素实现的loopback
- 1002. 写出这个数 (20)PAT乙级真题
- ng-change 在input type=file时失效的解决办法
- bzoj 2143 飞飞侠【最短路】
- 转DjVu格式为什么要选人工转?
- pytorch学习_2
- 翻译:iOS视图控制器编程指南(十)——自定义过渡动画(Customizing the Transition Animations)
- 迈出从3K到1W的重要一步——掌握设计模式
- 2017年度开源贡献榜 国内阿里排第一
- HDU 5927 (最近公共祖先)(bfs+树)