【发布时间】:2016-02-18 20:47:59
【问题描述】:
今天课堂上递归和堆栈溢出的有趣话题,我想知道是否有任何方法可以增加 Python 中的最大递归深度?写了一个使用递归查找 n 阶乘的快速函数:
def factorial(n):
if n == 1:
return n
else:
return n * factorial(n-1)
它可以处理阶乘(994),但不能处理阶乘(995)。给出的错误是:
RuntimeError: maximum recursion depth exceeded in comparison
显然可以迭代找到更高的阶乘,但是为了争论和阴谋,最大递归深度可以增加吗?
【问题讨论】:
-
注意这里避免过多递归的标准方法是使用记忆化。
-
不,这里没有仇恨。我们都在这里帮助他人。作为骗子关闭并不意味着我们恨你。未来一切顺利。
-
如果使用递归实现阶乘程序是必要的。您可以通过以下方式实现它,该方式能够使用 python 无限制地找到阶乘。 drive.google.com/file/d/1A0z9eyXD5mNIAZRotX5RM2QAu9bbZqHa/…
标签: python recursion stack-overflow