1、返回函数相乘
def fact(n):
if n == 1:
return 1
return n * fact(n - 1)
print(fact(100))
输出:2432902008176640000
2、使用尾递归:
def fact1(n):
return fact_iter(n, 1);
def fact_iter(num, product):
if num == 1:
return product
return fact_iter(num - 1, num * product)
print(fact1(20))
输出:2432902008176640000