PAT乙级(Basic)题库---1002
来源:互联网 发布:韩庚 王凯 知乎 编辑:程序博客网 时间:2024/06/06 04:48
题目
1002-写出这个数
解题思路
由于该数最大为100位的十进制数,不能直接用整形读入,因此采用字符串的方式读入,读入的字符串中的每个字符通过减去字符‘0’的操作得到真正的整数值,再来累加获得各位和。由于最大为100位的十进制数,各位和最大为999,得到的和结果不会超过1000,基本上得到和结果的各位可以直接输出,只是要注意和结果首位(百位或十位)为零的特殊情况就好。
代码
#include<iostream>#include<string.h>#include<cstring>using namespace std;//将个位数转换为拼音显示void tran(int unit){ switch(unit) { case 0: cout<<"ling"; break; case 1: cout<<"yi"; break; case 2: cout<<"er"; break; case 3: cout<<"san"; break; case 4: cout<<"si"; break; case 5: cout<<"wu"; break; case 6: cout<<"liu"; break; case 7: cout<<"qi"; break; case 8: cout<<"ba"; break; case 9: cout<<"jiu"; break; }}void conv(int num){ //得到各位数字,百位,十位和各位 int hundreds,decade,unit; hundreds=num/100; decade=num%100/10; unit=num%100%10; //百位不为零 if(hundreds) { tran(hundreds); cout<<" "; tran(decade); cout<<" "; tran(unit); cout<<"\n"; } //百位为零,十位不为零 else if(decade) { tran(decade); cout<<" "; tran(unit); cout<<"\n"; } //百位和十位均为零 else { tran(unit); cout<<"\n"; } }int main(){ string a; int sum; while(cin>>a) { sum=0; for(int i=0;i < a.length();i++) { //计算各位和,读入的是字符串,减字符‘0’ sum+=(a[i]-'0'); } //将结果以拼音输出 conv(sum); }}
阅读全文
0 0
- PAT乙级(Basic)题库---1002
- PAT乙级(Basic)题库---1001
- PAT乙级(Basic)题库---1003
- PAT乙级(Basic)题库---1004
- PAT乙级(Basic)题库---1005
- PAT乙级(Basic)题库---1006
- PAT乙级(Basic)题库---1007
- PAT乙级(Basic)题库---1008
- PAT乙级(Basic)题库---1009
- PAT乙级(Basic Level)1002(C++)
- PAT乙级(Basic Level)真题1002
- PAT乙级(Basic Level)1009(Java)
- PAT乙级(Basic Level)1021(Java)
- PAT乙级(Basic Level)1046(Java)
- PAT乙级(Basic Level)1042(Java)
- PAT乙级(Basic Level)1001(Java)
- PAT乙级(Basic Leve)1043(C++)
- PAT乙级(Basic Level)1041(C++)
- 数组(java)
- 研究外链对seo还有效果
- 【编程题】根据前序中序重建二叉树
- spring 之 自己动手实现IOC
- 10038---web.xml中的contextConfigLocation在spring中的作用
- PAT乙级(Basic)题库---1002
- VBA数据类型和类型转换函数
- HihoCoder
- Linux如何查看进程、杀死进程、启动进程等常用命令
- 什么是飓风算法
- XML笔记
- 『TensorFlow』函数查询列表_张量属性调整
- 【C语言】二进制
- JavaScript笔记