为什么Tial递归的阶乘返回没有?

时间:2015-09-23 20:02:10

标签: python recursion

我使用尾递归做了阶乘,它返回"无" - 为什么

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

1 个答案:

答案 0 :(得分:1)

您尚未在else子句中返回一个值 -

else:
    fact(n-1, k*(n-1) )

这应该是

else:
    return fact(n-1, k*(n-1) )