我正在使用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。
你必须继续这个过程,直到你得到长度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()
您需要编写一个执行求和的循环,直到您只剩下一位数字。
例:
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())