給出一個非負整數 num
,反覆的將所有位上的數字相加,直到得到一個一位的整數。
給出 num
= 38。
相加的過程如下:3 + 8 = 11
,1
+ 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));
}
}