我使用尾递归进行阶乘,它返回“无” - 为什么
def fact(n, k):
print "n = %d k = %d" % (n,k)
if n == 1:
print "k final = ", k
return k
else:
# print n
print k
fact(n-1, k*(n-1) )
a =(fact(4, 4) )
print a
最佳答案
您尚未在 else
子句中返回值 -
else:
fact(n-1, k*(n-1) )
这应该是这样的
else:
return fact(n-1, k*(n-1) )
关于python - 为什么阶乘的尾递归不返回任何内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32748497/