程序查找数字总和,直到它是Python中的一位数字

假设我们有一个正数n,我们将其所有数字相加得到一个新数字。现在重复此操作,直到小于10。

因此,如果输入类似于9625,则输出将为4。

为了解决这个问题,我们将遵循以下步骤-

  • 定义一个方法solve(),这将花费n

  • 如果n <10,则

    • 返回n

  • s:= 0

  • l:=(log(n)以10为底的底数)的底数

  • 当l> 0时

    • s:= s +(n mod 10)

    • n:= n / 10的商

    • l:= l-1

  • 返回求解

让我们看下面的实现以更好地理解-

示例

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))

输入值

9625

输出结果

4
猜你喜欢