Discuss / Python / 已经进行尾递归处理了 ,为什么还是会溢出

已经进行尾递归处理了 ,为什么还是会溢出

Topic source

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) sol=fact(1000) print(sol)

havenee

#2 Created at ... [Delete] [Delete and Lock User]

遗憾的是,大多数编程语言没有针对尾递归做优化,Python解释器也没有做优化,所以,即使把上面的fact(n)函数改成尾递归方式,也会导致栈溢出。


  • 1

Reply