PAT甲级 1001 A+B Format,小白视角看代码
写在正文前:最近决定佛系刷PAT题,因为个人进度比较慢,因此对每个题讲解只图一个字——懂!最好能让和我一样小白的人都读懂,佛系更文俗话说,欲速则不达!因此,对每个题,我都会查阅各个资料,彻底弄懂后,来更文,希望能帮助和我一样,在编程路上迷茫的人儿
贴图:
全英文!没错,不要怀疑,这也是我第一眼看到PTA甲级题目惊讶程度,不要害怕,单词还挺简单看起来不难的!
说明题意:
实现a+b,将结果类似于手机计算器上的标准化输出——从最后三位开始,每三位用“,”进行分隔!重点这里a,b范围是-1000000~1000000
输入格式:a空格b
输出格式:结果(已经标准化后)
思路分析:
- a,b输入,然后正常求和(so easy)
- 关键对结果的转化,因为要加“,”,可以全部转化成字符串类型,向里加字节型“,”比较容易(the most difficult)
- 逐位对字符串进行输出,考虑负数情况(a little difficult)
具体实现:
二话不说先上图,事后分析
啥?不懂?没关系,上图只是给大神看的,我们“肢解”一下下
细节讲解:
1.输入:此处省略两行code.I believe 你都懂!
2.整型转换字符串型:
- 首先定义一个字符串类型变量s,
- 调用函数itos(int to string)
- itos这个函数:
介绍一下新接触的头文件:<sstream>
字符串流,这里用到最基础的功能,int转string类型,首先定义一个stringstream类型的变量s,将int型变量sum,输入流,输出转换后的字符串,返回到主函数。
3.输出结果,主要用for循环一位位输出:
第一行考虑了负数的输出符号,这部分参考了网上大神的输出,笔者在纸上验算了一下下,正确极了,感谢这位大神,确实很厉害!思路很好!
运行结果:
至此我的第一篇博客算是写完了,欢迎批评指教,各位大神不喜勿喷,毕竟大家都从零开始过!笔芯❤!