假设我们有一个正数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