在函数的内部,去调用自己
条件:
1、函数自己调用自己
2、递归一定要有结束条件
#求n!5的阶乘
def fact(n):
if n == 1:
return 1
return n *fact(n-1) #自己调用自己
print(fact(5))
如果递归的次数太大会导致栈溢出的情况
解决方法:尾递归 ----调用自己的时候没有
def fact(n):
return fact_iter(n,1)
def fact_iter(num,product):
if num == 1:
return product
return fact_iter(num-1,num*product)
print(fact(5))