[Solved] Given an integer num, repeatedly add all its digits until the result has only one digit, and return it.

Table of Contents

Question

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?

Python Solution

class Solution:
    def addDigits(self, n: int) -> int:
        if n==0:
            return 0
        if n%9==0:
            return 9
        else:
            return n%9

Leave a Reply

Your email address will not be published. Required fields are marked *