258. 各位相加

思路很简单,对10求余得到最低位,同时对数本身除10去掉当前最低位,不断迭代,用res依次相加。


但是如何判断结果是一位数的时候输出呢?

有一个很简单的想法就是利用if语句,当res大于9的时候把它的值再次赋给num,再次进行上述while循环。

要实现这一点,可以考虑双循环,利用flag变量来作为跳出循环的标志。

首先令flag =1, 直到res小于等于9的时候置为0.而在res大于9时,令num = res。

这里很重要的一点是,res一定是从0开始加的,因此在后面必须加上res = 0,否则res会越加越大,直到溢出。

具体实现如下:

你可能感兴趣的:(258. 各位相加)