Python程序:求数字各位数之和直到结果为一位数
假设我们有一个正数n,我们将把它的所有位数加起来得到一个新的数字。现在重复此操作,直到它小于10。
因此,如果输入为9625,则输出将为4。
为了解决这个问题,我们将遵循以下步骤:
- 定义一个方法solve(),它将接收n作为参数
- 如果n < 10,则
- 返回n
- s := 0
- l := ⌊log₁₀(n) + 1⌋ (底数为10的对数)
- 当l > 0时,执行以下操作:
- s := s + (n mod 10)
- n := n / 10 的商
- l := l - 1
- 返回solve(s)
让我们看看下面的实现,以便更好地理解:
示例
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
广告