题目:
Given a non-negative integer num
, repeatedly add all its digits until the result has only one digit.
Example:
Input:38
Output: 2 Explanation: The process is like:3 + 8 = 11
,1 + 1 = 2
. Since2
has only one digit, return it.
Follow up:
Could you do it without any loop/recursion in O(1) runtime?
代码:
class Solution {
public int addDigits(int num) {
while(num / 10 != 0){
int nnum = num;
num = 0;
while(nnum != 0){
num += nnum % 10;
nnum /= 10;
}
}
return num;
}
}