LeetCode-258. 各位相加

题目描述 各位相加

给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。

示例

输入: 38
输出: 2
解释: 各位相加的过程为:3 + 8 = 11, 1 + 1 = 2。 由于 2 是一位数,所以返回 2。

解题思路

三位数整数 n=100a+10b+c,变化后 addn=a+b+c,两者的差值n-addn=99a+9b 是9的倍数。

说明n和addn对于9,即n%9==addn%9。那么变化到最后,与n同余的个位数,也就是n%9

代码

class Solution {
public:
    int addDigits(int num) {
        if(num<10) return num;
        if(num%9==0) return 9;
        else return num%9;     
        return 0;
    }
};

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