基本做法就是从最后一位累加,累加一次就把这个中间结果调用这个函数直至变成一位。 recursive
public class Solution {
public int addDigits(int num) {
while ( num >= 10 ){
int sum = num % 10;
sum = addDigits( sum );
num = num/10;
num += sum;
}
return num;
}
}
follow up是用o(1)time并且不要recursion
看过提示发现结果是有规律的 1-9 重复出现 corner case 0
public class Solution {
public int addDigits(int num) {
if ( num != 0 && num % 9 == 0 )
return 9;
else
return num % 9;
}
}