【发布时间】:2018-10-24 19:20:37
【问题描述】:
我已经看到了很多关于如何将最后带有单个递归调用的函数转换为迭代版本的示例;但是,如果最后有两个递归调用呢?
这是我的意思的一个例子,在 Python 中:
def doit(x, y, L):
if x < y:
x += 1
else:
x -= 1
y -= 1
if y > 0:
L.append(x)
doit(x, y, L)
doit(x - 1, y - 1, L)
#usage
L = []
doit(3, 5, L)
print(L)
请注意,两个递归调用都在最后。无论我在这两个递归调用之前在代码中做什么,是否有一种通用方法可以将这样的东西转换为迭代版本?请记住,我上面提供的只是一个示例。
【问题讨论】:
标签: loops recursion stack iteration