我使用尾递归做了阶乘,它返回"无" - 为什么
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
答案 0 :(得分:1)
您尚未在else
子句中返回一个值 -
else:
fact(n-1, k*(n-1) )
这应该是
else:
return fact(n-1, k*(n-1) )