为什么函数没有给出数字的数字根?

2024-09-24 00:27:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用python3.6制作一个digitalroot程序。它通常找到特定数字的数字根

这是代码

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


Tags: the代码程序numberinputdef数字integer
2条回答

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

示例:

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

你必须继续这个过程,直到你得到长度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()

相关问题 更多 >