PAT乙级1002
来源:互联网 发布:网页电子书制作软件 编辑:程序博客网 时间:2024/06/04 18:44
时间限制
400 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue
读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100。
输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。
输入样例:
1234567890987654321123456789
输出样例:
yi san wu
思想:由于题给n值过大,用基本数据类型不可表示,故考虑字符串存储,将字符串转为char数组,由于是数字,则与’0’比较,多出来的值转为int,把这些值加起来就是和,不过要注意测试用例中不可能光是0~9让你轻松通过,所以当多出来的值不在0~9内,直接跳过就行。输出和时,笔者采用递归的思想,道理跟上题有几分相似。
#include<iostream>#include<string.h>using namespace std;int Sum(char *n){ int temp = 0; while(*(n)) { if(*(n)-'0'<=9&&*(n)-'0'>=0) temp+=*(n++)-'0'; else n++; } return temp;}void PrintSum(int n){if(n/10==0){ int temp = n%10; switch(temp) { 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; default:break; }}else{ PrintSum(n/10); cout<<' '; PrintSum(n%10);}}int main(){ char n[101]; cin.get(n,101); char *temp = n; //cout<<Sum(n)<<endl; PrintSum(Sum(temp)); return 0;}
0 0
- PAT乙级1002
- PAT乙级1002
- PAT 乙级 1002
- PAT 乙级试题 1002
- PAT 乙级1002
- PAT乙级1002
- PAT(乙级)1002
- PAT 乙级 1002
- PAT 乙级 1002
- PAT乙级1002
- PAT乙级练习1002
- PAT乙级1002
- PAT 乙级练习 1002
- PAT 乙级 1002-数字分类
- PAT乙级训练题--1002
- Java解决PAT乙级真题第1002题
- PAT乙级(Basic Level)1002(C++)
- PAT(乙级)1002 数字分类 (20)
- 使用 Math 类操作数据
- 约瑟夫环的实现
- servlet学习总结六
- 安装mysql-5.7.15-winx64
- loadhtmlstring加载内容是不显示图片
- PAT乙级1002
- iOS10的适配(二)
- 好的博客整理
- CI Weekly #2 | 如何优化开发流程,实现项目持续集成?
- tomcat设置直接通过域名访问项目(不需要接 /项目名)
- VS2010 LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 的解决方法
- IDEAL Ultimate 的SVN导入
- 根据Url 获取图片尺寸 iOS
- opencv 距离变换的GPU并行化计算