1.递归实现
def recursion(n):
if n==1:
return 1
return n*recursion(n-1)
2.尾递归实现
def recursion(n):
return recursion_iter(n,1)
def recursion_iter(num,sum):
if num == 1:
return sum
return recursion_iter(num-1,num*sum)
学于廖雪峰Python教程。
多次调用递归会产生栈溢出,尾递归可以优化这种现象,不过,大量调用递归仍然会报错。