Github地址:https://github.com/tinghaishuo/object-oriented/tree/master/1001.A%2BB Format(20)
题目:1001. A+B Format (20)
Calculate a + b and output the sum in standard format -- that is, the digits must be separated into groups of three by commas (unless there are less than four digits).
- Input:Each input file contains one test case. Each case contains a pair of integers a and b where -1000000 <= a, b <= 1000000. The numbers are separated by a space.
- Output:For each test case, you should output the sum of a and b in one line. The sum must be written in the standard format.
解题思路:
- 输出须为三组数据由逗号分隔,则需要再定义四个数,一个数为相加后的结果,另外三个数分别表示这三组数据。
- 本次需要用到循环结构以及需要注意printf的输出格式。
- 对于循环体的设计,先判断输出是否需要三组数据表示,否则再进一步判断是否需要2组数据表示,若否则可直接输出结果。
编码过程中调试与上线测试(提交代码)后的bug发现与修改过程
编码过程的调试:
-
编译并无发现错误,但在运行过程中发现若输出结果为负数时,每一组数据前均会带上一个负号。
-
根据发现的错误,进行了修改,取绝对值。当和为负数时:若输出是一组数据,则可直接输出;若输出是两组数据,从左往右,第二组数据取绝对值再输出;若输出是三组数据,从左往右第二、三组数据取绝对值再输出。
-
再次编译运行,发现无误,提交。
上线测试(提交代码):
-
第一次:
评测结果为0分,有点百思不得其解。看了错误,是绝对值的使用错误
本想在绝对值的问题上进行修改,后转念一想,若先将负号输出,再对剩下的数字进行处理,更加简便。于是重新进行了修改。 -
第二次:
第二次测评只有16分,说明仍存在一些细节上的错误。
于是我重新找了几组数据检测,发现了一个小细节。
由于自己的粗心大意,导致了这个错误,再次修改。 -
第三次:
终于,正确了。
小结:
1拿到一个题目后,应该从多方面想解法,不能一股脑想什么就写什么,多思考思考会想到更多更加简便的方法。
2心思要缜密。在提交前要多拿几组数据测试,避免犯不该犯的错误。
3发现错误的过程不断进行自我反省自我改正,直到全对。这个过程收益颇丰。才入门技术不足,常常犯许多错误。正视这些错误,多思考,虚心请教同学以及前辈,不断学习,取得进步。