使用尾递归之后,调用 fact(1000) 还是出现 栈的溢出呢?
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(1000))
python的解释器没有做优化,所以递归函数的栈溢出问题没有得到解决
Sign in to make a reply
快到碗里来ping
使用尾递归之后,调用 fact(1000) 还是出现 栈的溢出呢?
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(1000))