为什么我的功能没有给我数字的数字根?

问题描述 投票:-1回答:2

我正在使用Python 3.6制作数字根程序。它通常会找到特定数字的数字根。

这是代码

def digital_root():
  n = input("Enter the number:")
  sum = 0
  integer = int(n)
  if len(n) == 1:
     print("The digital root of " + n + " is: " + n)
  else:
     for x in n:
       sum += int(x)
  return sum

print(digital_root())

当我的输入为38时,输出为11,而应为2。

python python-3.x
2个回答
0
投票

你必须继续这个过程,直到你得到长度1.你可以编写递归函数来做到这一点。

def digital_root():
    n = input("Enter the number:")
    print("The digital root of " + n + " is: " + recur(n))
    return sum

def recur(n):
    sum = 0
    if len(n) == 1:
        return n
    else:
        for x in n:
            sum += int(x)
    return recur(str(sum))


digital_root()

0
投票

您需要编写一个执行求和的循环,直到您只剩下一位数字。

例:

def digital_root():
    n = input("Enter the number:")
    sum = 0
    integer = int(n)

    calculate = True

    while calculate:
        if len(n) == 1:
            print("The digital root of " + str(integer) + " is: " + n)
            calculate = False
        else:
            sum = 0
            for x in n:
                sum += int(x)
            n = str(sum)

    return sum


print(digital_root())
© www.soinside.com 2019 - 2024. All rights reserved.