题目:
Add Digits
Given a non-negative integer num, repeatedly add all its digits until the result has only one digit.
For example:
Given num = 38, the process is like: 3 + 8 = 11, 1 + 1 = 2. Since 2 has only one digit, return it.
Follow up:
Could you do it without any loop/recursion in O(1) runtime?
链接:https://leetcode.com/problems/add-digits/
解法1:
%% C++
class Solution {
public:
int add_digits(int num, int sum)
{
int remain;
remain = num % 10;
num = num / 10;
if (num == 0)
if (sum + remain >= 10)
return add_digits(sum + remain, 0);
else
return sum + remain;
else
return add_digits(num, sum + remain);
}
int addDigits(int num) {
return add_digits(num, 0);
}
};