给出一个非负整数 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));
}
}