给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。
使用递归
class Solution {
public int addDigits(int num) {
if(num < 10) return num;
int count = 0;
while(num != 0){
count += num % 10;
num = num / 10;
}
return addDigits(count);
}
}
使用迭代
class Solution {
public int addDigits(int num) {
while(num >= 10){
int count = 0;
while(num != 0){
count = count + num % 10;
num = num / 10;
}
num = count;
}
return num;
}
}
数学方法
class Solution {
public int addDigits(int num) {
return (num - 1) % 9 + 1;
}
}