DAY.21
每天学习一点python-第二十一天递归函数:如果一个函数在内部不调用其它的函数,而是自己本身的话,这个函数就是递归函数。
判断是不是递归函数条件:
①调用自身。
②递归函数必须有一个结束条件,否则递归无法结束会一直递归下去,直到到达最大递归深度报错。
实现阶乘运算:n!=1×2×3×…×n
例1:
defjc(n):
result=1
foriteminrange(1,n+1):
result*=item
pass
returnresult
print(jc(3))
输出:6
例2:用递归方式实现
defJc(n):
ifn==1:#结束条件
return1
else:returnn*Jc(n-1)#调用自身
passprint(Jc(3))#递归调用
输出:6
总结
优点:逻辑简单。
缺点:容易导致栈溢出,内存资源紧张,甚至内存泄漏。
递归的逻辑很难调试、跟进。