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?
数学题,解法看代码,结果:
Success
Runtime: 0 ms, faster than 100.00% of C++ online submissions for Add Digits.
Memory Usage: 8.2 MB, less than 57.47% of C++ online submissions for Add Digits.
代码:
class Solution {
public:
int addDigits(int num) {
if(!num){return 0;}
num=num%9;
if(num){return num;}
return 9;
}
};