258-add-digits¶
Try it on leetcode
Description¶
Given an integer num
, repeatedly add all its digits until the result has only one digit, and return it.
Example 1:
Input: num = 38 Output: 2 Explanation: The process is 38 --> 3 + 8 --> 11 11 --> 1 + 1 --> 2 Since 2 has only one digit, return it.
Example 2:
Input: num = 0 Output: 0
Constraints:
0 <= num <= 231 - 1
Follow up: Could you do it without any loop/recursion in O(1)
runtime?
Solution(Python)¶
class Solution:
def addDigits(self, num: int) -> int:
return self.math(num)
def trivialSolution(self, num: int) -> int:
digital_root = 0
while num > 0:
digital_root += num % 10
num = num // 10
if num == 0 and digital_root > 9:
num = digital_root
digital_root = 0
return digital_root
def math(self, num: int) -> int:
if num == 0:
return num
elif num % 9 == 0:
return 9
else:
return num % 9