用 Python 编写程序来查找数字的超位数

pythonserver side programmingprogramming更新于 2025/12/24 10:52:17

假设我们有一个数字 n。我们必须找到这个数字的超位数。一位数的超位数是数字本身,但对于多位数,超位数是所有数字的和,直到和为一位数。

因此,如果输入为 n = 513682,则输出将为 7,因为 (5+1+3+6+8+2) = 25,(2 + 5) = 7。

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

  • s := 0
  • 当 n > 0 或 s > 9,执行
    • 如果 n 与 0 相同,则
      • n := s
      • s := 0
    • s := s + n mod 10
    • n := n/10 的 floor 值
  • 返回 s

示例

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

def solve(n):
   s = 0
   while(n > 0 or s > 9):
      if n == 0:
         n = s
         s = 0

      s += n % 10
      n //= 10

   return s

n = 513682
print(solve(n))

输入

513682

输出

7

相关文章


有用资源