程序设计第二次作业(1)
程序设计第二次作业(1)
### github链接 ### https://github.com/hsh1234/object-oriented ********** 题目 http://www.patest.cn/contests/pat-a-practise/1001"
一看到这个题目我就发现这应该是A+B吧,不过我想老师不可能只为了让我们做两个数相加这种题目。经过有道词典的翻译我发现了这道题目的输出要用金额的标准格式,呃,我回头看了看输出原来是多了“,”。
*****解题思路
- 刚开始我是想把数的最高位开始储存在数组的第一个数中发现会变得麻烦许多(个人认为)比如一个6位数,要先除以100000,在除以10000依次类推····
- 在打印过程中,我发现逗号的位置怎么有点猥琐,都往后退了一个,这才发现我是从string【1】存的。这也是大一没有好好纠正的坏毛病经常马虎。哎~
- 比较喜欢多测试几组数据后在进行提交,避免出现WA,所以提交前测试好几组数据。提交后就一次通过了,也就没有所谓的“上线测试(提交代码)后的bug发现与修改过程“。
- 先进行两个数相加的运算
- 当金额是1~3位的整数则不需要逗号,是4~6位则需要1个逗号,由于题目条件所限制所以金额最大值也只是就7位数,因此最多也就只需要2个逗号
- 起初我的想法是先把A+B的总和打印,然后退回去添加逗号,因为我印象中有个转义字符\b,估计是因为大一上比较少用这个退格,不清楚的这个转义字符使用后会改变什么,当我尝试之后便发现了错误
- 退格不行我就想另一个办法,就是把最后金额的绝对值的每一位存到数组中,然后输出的时候分情况
- 每次除以10求余,把余数存起来,接着把商作为被除数,在除以10求余。直到余数等于被除数
- 输出时若最A+B是负数就在前面加一个“-”就行了,数组中的第一个数对应个位数,所以打印的时候要用后面开始打印,若有打印到数组中第7个或第4个数就加一个“,”
调试与修改
反思
发现自己还是有好多的不足,大一上学期没有好好敲代码,连一个转义字符退格都没有掌握好,在写代码的时候经常会忘记前面的一些东西,经常会忘记定义变量等到调试的时候才发现自己忘记定义了。希望在这个寒假能够改掉。
PAT提交结果截图
嘿嘿