给定一个非负整数 num
,反复将各个位上的数字相加,直到结果为一位数。
示例:
输入: 38 输出: 2
解释: 各位相加的过程为:3 + 8 = 11,1 + 1 = 2。 由于2 是一位数,所以返回 2。
思路:由题意可知,超过10的数其实是减9的一个过程。例如10是1+0=1,减一个9,23是2+3=5,减2个9,,,,,,但是要考虑0的情况和9的倍数的情况,因为它们的mod9后的值都是0,不符合题意。因此要进行判断。代码如下:
public int addDigits(int num){
if(num==0) return 0;
if(num%9==0) return 9;
else{
return num%9;
}
}