当前位置: 首页 > >

leetcode:258. 各位相加

发布时间:

给定一个非负整数 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;
}
}



友情链接: