java - 各位相加 O(1)

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

樣例

給出 num = 38。

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

挑戰 

你可以不用任何的循環或者遞歸算法,在 O(1) 的時間內解決這個問題麼?


public class Solution {
    /**
     * @param num a non-negative integer
     * @return one digit
     */
    public int addDigits(int num) {
        // Write your code here
        return num == 0?0:(num%9 == 0?9:(num%9));
    }
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章