PAT乙级1002 题:写出这个数

题目描述:读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字(n 小于 1 0 100 10^{100} 10100)

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

我写的代码:
#include <iostream>
#include <string>
using namespace std;
int main(){int res = 0;string result[10] = {"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};string jieguo[3] ={};string input;cin>>input;int len = input.length();for(int i=len-1;i>=0;i--){res = res +  (input[i]- '0');}int n=0;while(res!=0){jieguo[n] = result[res%10];res = res/10;n++;}for(int i=n-1;i>0;i--){cout<<jieguo[i]+" ";}cout<<jieguo[0];return 0;
}

我的收获:

1.题目中讲n 小于 1 0 100 10^{100} 10100,因此利用long long数据类型也是不合理的(long long可以表示的最大数据为 2 63 2^{63} 263-1),也就是说小于 1 0 100 10^{100} 10100,因此无法用long long型来表示n,因此我利用字符串类型表示了输入的n。
2. 在利用字符串类型作为输入数据的类型的同时,也可以随时定位出输入的各位数字,利用定位出的各位数字(每一位都是char类型)-‘0’可以转化为要找的各位数字类型的数字。
3. 最后,利用映射的关系,将各位数字的和映射为汉语拼音,我利用了对10求余数的方式定位出了结果的各位,但是与输出恰好相反,因此我将输出存入了字符串数组中,再将其输出来(应该有更好的方法)
⊙(・◇・)?

柳神的代码
#include <iostream>
#include <string>
using namespace std;
int main() {string s;cin >> s;int sum = 0;string str[10] =  {"ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"};for (int i = 0; i < s.length(); i++)sum += (s[i] - '0');string num = to_string(sum);for (int i = 0; i < num.length(); i++) {if (i != 0) cout << " ";cout << str[num[i] - '0'];}return 0;
}

看过柳神的代码后的收获:

1.柳神将计算后的总和,又转换为了字符串,再从头逐个输出字符串的各位数字对应的汉语拼音。

PAT乙级1002 题(与柳神思路比对)相关推荐

  1. PAT乙级刷题心得和常用函数总结 (c++实现)

    开始先说最重要心得体会: 写代码前,先在纸上写写画画,写下伪码,理清思路,别上来就敲代码,效率极低还易出现bug. 2019-12-12到2020-01-17,用C++刷完了PAT乙级95道题目,第6 ...

  2. 1085 PAT单位排行 (25分)-PAT乙级真题-C++实现

    1085 PAT单位排行 (25分)-PAT乙级真题-C++实现 题目描述: 每次 PAT 考试结束后,考试中心都会发布一个考生单位排行榜.本题就请你实现这个功能. 输入格式: 输入第一行给出一个正整 ...

  3. C++ PAT 乙级 ——1002 读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。

    C++ PAT 乙级 --1002 读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 题目分析 (1)由于自然数n的范围要求小于10^100,unsigned long long ...

  4. 【PTA】 PAT乙级真题,95题(C++,AC代码)

    PAT乙级真题95题 标号 标题 分数 通过数 提交数 通过率 1001 害死人不偿命的(3n+1)猜想 15 109558 309119 0.35 1002 写出这个数 20 71739 28156 ...

  5. 【2019年秋PAT乙级考试】回顾 +题解+思路2019-9-8

    刚上大二第一次考乙级,数据结构学了链表.95道题刷完了...考试的确是答得快了,但是分数还是~~~~~ 四道题四十分钟左右做完提交都是一遍过(平常刷题,交20 30次~~~才能补完全部测试点卡的漏洞. ...

  6. PAT乙级真题1058 || 选择题(详解,C/C++示例,测试点分析)

    [欢迎关注微信公众号:计算机黑科学大全,对话框回复:PAT乙级真题]获取全部真题详解及代码示例 个人博客地址:https://mzwang.top 选择题 题目描述: 批改多选题是比较麻烦的事情,本题 ...

  7. PAT乙级真题1089 || 狼人杀-简单版(详解,C/C++示例,测试点分析)

    [欢迎关注微信公众号:计算机黑科学大全,在对话框回复:PAT乙级真题]获取全部真题详解及代码示例,邀请大家加入PAT算法刷题交流qq群:821388108 个人博客:https://mzwang.to ...

  8. 「PAT乙级真题解析」Basic Level 1004 (问题分析+完整步骤+伪代码描述+提交通过代码)

    乙级的题目训练主要用来熟悉编程语言的语法和形成良好的编码习惯和编码规范.从小白开始逐步掌握用编程解决问题. PAT乙级BasicLevelPractice 1004 需求分析 思路一: 以终为始分解需 ...

  9. 【Java】PAT乙级真题全记录(三)41到60题

    PAT乙级41到60题练习代码全纪录 1041 考试座位号 1042 字符统计 1043 输出PATest 1044 火星数字 1045 快速排序(1.3.4.5测试点运行超时) 1046 划拳 10 ...

最新文章

  1. python中的pop()函数和popleft()函数
  2. python3.6.8卸载_Mac 卸载 彻底删除 自己下载的 python 3
  3. akka使用_使用Akka简化交易系统
  4. chrome 谷歌浏览器怎么添加Axure扩展
  5. ArcGIS Portal 10.4 本地坐标系的web 3d地形展示制作说明
  6. mvc:annotation-driven /注解意义
  7. 百度钱包 java_百度钱包安全控件
  8. 小写字母转大写代码HTML,CSS控制转换字母的大写和小写
  9. 微信朋友圈html5广告,微信朋友圈原生广告页是什么
  10. PID调节原理——方法
  11. Java-给会员打折
  12. 将 ERP 与 PPM 系统集成的 5 个理由
  13. 【实用软件】Json文件查看器(支持查看超大JSON文件)
  14. Vue3.x使用富文本tinymce-vue
  15. CSS3视窗单位vw、vh、vmin、vmax说明
  16. VBA打开已加密的Excel文件
  17. linux下Found a swap file by the name解决
  18. 树莓派安装Ubuntu22.04后使用X86_Linux交叉编译Qt5+opencv4
  19. 最老程序员创业札记:全文检索、数据挖掘、推荐引擎应用44
  20. ”为什么有这么多人执着于中文编程?”第二春:新评论的一并回应

热门文章

  1. SQL Server如何显示行号
  2. 计算机三级应该学什么条件,计算机三级报名条件
  3. T-3.2-把Redis当作消息队列合不合适
  4. android调用chrome,android webview调用使用chrome浏览器
  5. 足球比赛数据分析系统
  6. 报错 No module named 'email.utils'; 'email' is not a package解决方法
  7. Bash cp 命令详解
  8. 程序UI设计——工业软件UI 设计心得
  9. FXS/FXO, BRI/PRI, IPPBX
  10. LinkedList入门教程