为什么老师说即使把fact(n)函数改成尾递归方式,也会导致栈溢出?
Topic sourcedef 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(997))
#都会栈溢出
- 1
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(997))
#都会栈溢出
JellyHurricane
fact(n)函数改了也会导致栈溢出,那为何fact-iter函数不会?而且老师给的修改后程序的功能即使只有fact-iter函数也能实现啊,保留fact(n)的目的又是什么呢?请各位大神指点。