首页 > 技术文章 > (2016.2.2)1001.A+B Format (20)解题思路

UNWILL2LOSE 2016-02-02 16:40 原文

https://github.com/UNWILL2LOSE/object-oriented

解题思路

目标:

*首先运算要求实现输入2个数后,输出类似于银行的支票上的带分隔符规则的数字。

代码实现思路

1.首先输入2个数字,进行相加,记为sum。
2.然后判断正负,决定是否输出“-”。并且将负数变为整数。
3.定义i,循环从个位到最高位,把各个位的数取出来,存储在数组中
4.此时的i对应就是sum的位数,然后判断
    *如果位数小于等于3,直接输出sum
    *否则,对i取3的余数,记为key,对key判断
        ** 如果非0,则先循环从数组的i-1开始输出最高位,循环key次后结束,并输出逗号
        ** 如果位0,则直接进入下一步
    *循环从数组中从高到低输出数,同时定义num=0,没次循环++,判断num%3是否为0且num是否大于3。
        ** 是,输出逗号
        ** 否,什么也不做
5.return 0;

难点

1.正负数都化为了正数
2.使用数组,同时数组有效长度+1就是位数
3.将分隔符的输出看成2部分,分别处理

调试bug与反思

1.调试过程中出现了,99,99,
* 分析:因为在没有使用思路4中第二个判断,导致就算是余数为0也会输出逗号。

截图

推荐阅读