【算法训练】LeetCode#258 各位相加
一、描述
258. 各位相加
给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。返回这个结果。
示例 1:
输入: num = 38
输出: 2
解释: 各位相加的过程为:
38 --> 3 + 8 --> 11
11 --> 1 + 1 --> 2
由于 2 是一位数,所以返回 2。
示例 2:
输入: num = 0
输出: 0
二、解题
Java
public static int addDigits(int num) {
int left = num;
int ans = 0;
while (true){
ans += left % 10;
left = left/10;
if (left == 0){
if (ans < 10){
return ans;
} else {
left = ans;
ans = 0;
}
}
}
}
C++
int addDigits(int num) {
int ans = 0;
while (true){
ans += num%10;
num /= 10;
if (num == 0){
if (ans < 10){
return ans;
} else {
num = ans;
ans = 0;
}
}
}
}

浙公网安备 33010602011771号