1. 程式人生 > >各位相加

各位相加

整數 pro code 思想 light int 實現 digits logs

題目鏈接

http://www.lintcode.com/zh-cn/problem/add-digits/

題目大意

給出一個非負整數 num,反復的將所有位上的數字相加,直到得到一個一位的整數。

樣例

給出 num = 38。

相加的過程如下:3 + 8 = 111 + 1 = 2。因為 2 只剩下一個數字,所以返回 2

算法思想

遞歸判斷這個數字被拆分後求和,和是不是小於10,小於10的話就結束遞歸

代碼實現

public class Solution {
    /*
     * @param num: a non-negative integer
     * @return: one digit
     */
    public int addDigits(int num) {
        if (num < 10)
            return num;
        else
        {
            int result = 0;
            while (num / 10 != 0)
            {
                result += num % 10;
                num = num / 10;
            }
            result += num % 10;
            return addDigits(result);
        }
    }
}

  

各位相加