*LeetCode-Add Digits

基本做法就是从最后一位累加,累加一次就把这个中间结果调用这个函数直至变成一位。 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;
    }   
}


你可能感兴趣的:(*LeetCode-Add Digits)