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?
Python
class Solution(object): def addDigits(self, num): """ :type num: int :rtype: int """ while num > 9: num = self.add(num) return num def add(self, a): result = 0 for i in str(a): result += int(i) return result