我可能没有使用正确的术语,但我对编程还很陌生(所以请原谅我,如果这是一个简单的搜索,我不确定我是否使用了正确的关键字)。
假设我有一个重复关系:
f(0) =2
f(x) = f(x-1) +1表示x >= 1.
现在,假设我想用Python (2.7)中的递归对这个关系进行编程,但是不只是返回f(x),我想返回一个列表: f(x),f(x-1),…,f(0)。
我可以很容易地将递归关系编程返回f(10):
def my_fun(x):
if x == 0:
return 2
else:
return 1+my_fun(x-1)但是,对于如何在不使用for循环的情况下返回每个函数调用,我感到很困惑。
有办法这样做吗?
编辑:如果可能的话,我想避免使用for循环。
发布于 2017-09-04 00:25:31
您可以返回一个list并使用最后一个元素计算上一次调用中的值。
def my_fun(x):
if x == 0:
return [2]
else:
l = my_fun(x-1)
l.append(l[-1] + 1) # since f(n-1) is in the last element
return l
a = my_fun(5)
print(a)https://stackoverflow.com/questions/46028878
复制相似问题