给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。返回这个结果。
示例 1:
输入: num = 38
输出: 2
解释: 各位相加的过程为:
38 --> 3 + 8 --> 11
11 --> 1 + 1 --> 2
由于 2 是一位数,所以返回 2。示例 1:
输入: num = 0
输出: 0提示:
0 <= num <= 231 - 1我的代码:
class Solution {
public:
// 枚举每一位数字的和
int fc(int tmp)
{
int res = 0;
while(tmp)
{
res += tmp % 10;
tmp /= 10;
}
return res;
}
public:
int addDigits(int num) {
while(num >= 10)
{
// 反复枚举
num = fc(num);
}
return num;
}
};