1001.A+B Format (20)

1001.A+B Format (20)

GitHub链接

解题思路

  1. 此题大致上是简单的A+B问题,只是在输出时额外要求以标准数(即每三位数记一个逗号的形式)输出。
  2. 标准数输出,一开始想的是把数字转化为字符串(网上查阅了itoa函数),后来多次尝试发现比较难实现。然后发现题目给的范围是1000000以内,这样一来逗号就只有1个、2个、3个三种情况,将数字大小进行判断,分别输出就可以,不用再转化为字符串。
  3. 总体思路:首先将符号去掉,便于计算。然后分为三种情况,再通过计算得到每个逗号之间的三位数,分别输出即可。

编码过程中调试

  1. 一开始的难题是如何取出逗号之间的数字,经过多次尝试,找到了方法:
    • 1000以内的数字:直接输出
    • 1000-1000000之间的数字:先将数字除以1000后输出前三位数字,输出一个逗号后,用1000取余输出后三位
    • 1000000以上的数字:现将数字除以1000000后输出前三位数字,输出一个逗号,再将原数字除以1000后再用1000取余,输出中间三位,输出一个逗号,最后将原数字用1000取余即可输出最后三位
  2. 后来调试发现遇到不足三位数的地方,不会自动补上0,苦思无果,网上查阅资料后发现只要在输出时写为“%03d”,就会输出三位数字左端补0的格式(新技能get),之后在该补0的地方补上0就完成了。

在PAT上的提交记录列表截图

PAT提交记录

(提交前测试的数据比较多,一次就过真是感人。)
原文地址:https://www.cnblogs.com/zhengshuhao/p/5159031.html