【发布时间】:2020-07-28 16:39:51
【问题描述】:
我被困在这个练习中。
任务:
数字根是数字中所有数字的递归和。给定n,取n的位数之和。如果该值超过一位,则继续以这种方式减少,直到产生一位数。这仅适用于自然数。
它是这样工作的:
digital_root(16)
1 + 6 = 7
digital_root(942)
9 + 4 + 2 = 15 ... 1 + 5 =6
我的方法就在这里。关于如何正确返回正确值的任何提示?我将不胜感激。
def digital_root(n):
answ = 0
s = 0
x = str(n)
for i in range(0, len(x)):
s = s + int(x[i])
if len(str(s)) > 1:
digital_root(s)
elif len(str(s)) == 1:
answ = s # here is an answer
return answ # answer is 2 but this one is not returning 2, why?
return answ # here it returns answ=0, I want to return 2...
print(digital_root(493193))
【问题讨论】:
标签: python python-3.x recursion return