题目:
给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。
示例:
代码:
- 解法一
//递归的思想
class Solution {
public int addDigits(int num) {
if(num/10==0)
return num;
int temp=0;
while(num>0){
temp+=num%10;
num=num/10;
}
if(temp<10){
return temp;
}
else{
return addDigits(temp);
}
}
}
- 解法二
//循环的思想
class Solution {
public int addDigits(int num) {
while(num/10>0){
num = num/10+num%10;
}
return num;
}
}
- 解法三
//下面这个让人感叹数学可真神奇!对9求余就是结果了。。。
class Solution {
public int addDigits(int num) {
if(num==0)
return 0;
return num%9==0?9:num%9;
}
}