Find Sum of Digits Until One Digit Number in Python



Suppose we have a positive number n, we will add all of its digits to get a new number. Now repeat this operation until it is less than 10.

So, if the input is like 9625, then the output will be 4.

To solve this, we will follow these steps −

  • Define a method solve(), this will take n
  • if n < 10, then
    • return n
  • s := 0
  • l := the floor of (log(n) base 10 + 1)
  • while l > 0, do
    • s := s + (n mod 10)
    • n := quotient of n / 10
    • l := l - 1
  • return solve(s)

Let us see the following implementation to get better understanding −

Example

 Live Demo

import math
class Solution:
   def solve(self, n):
      if n < 10:
         return n
      s = 0
      l = math.floor(math.log(n, 10) + 1)
      while l > 0:
         s += n % 10
         n //= 10
         l -= 1
      return self.solve(s)
ob = Solution()
print(ob.solve(9625))

Input

9625

Output

4
Updated on: 2020-10-07T13:34:42+05:30

3K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements