【发布时间】:2014-02-01 23:39:39
【问题描述】:
我想知道在使用动态查找表时是否可以使用迭代。使用递归,您可以从下到上获取所有必要的查找表数据。我似乎无法理解我们如何使用迭代来实现相同的目标,而无需创建堆栈并最终重新实现递归。
以我对 Project Euler 问题 #14 的解决方案为例:
table = {1:1}
def collatz(n):
if n in table:
return table[n]
elif n % 2:
x = 1 + collatz(3*n + 1)
else:
x = 1 + collatz(n/2)
table[n] = x
return x
MAXc = 0
for i in xrange(1,1000000):
temp = collatz(i)
if temp > MAXc:
MAXc = temp
result = i
print result
我们如何使用迭代来实现相同的功能?
【问题讨论】:
标签: python recursion iteration theory