- 递归调用是通过栈(stack)数据结构实现的,解决递归调用栈溢出的方法是尾递归优化,事实上尾递归和循环的效果是一样的,所以,把循环看成是一种特殊的尾递归函数也是可以的。
- 尾递归的方式: 在函数返回的时候,调用自身本身,并且,return语句不能包含表达式。
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)
本文介绍了如何使用尾递归优化来避免递归调用导致的栈溢出问题。尾递归优化使得递归调用能像循环一样高效执行,通过一个具体的阶乘计算函数示例解释了尾递归的实现方式。

323

被折叠的 条评论
为什么被折叠?



