如果我运行这段代码
def fib(n):
if n == 1:
return [1]
if n == 2:
return [1, 1]
else:
return fib(n - 1).append(fib(n - 1)[n - 1] + fib(n - 2)[n - 2])
print fib(3)
我收到一个错误,列表索引超出范围。
答案 0 :(得分:0)
您不能添加return
。此外,您在append
语句中进行了off by 1错误,导致索引超出范围错误。如果您将上一个答案存储在我称为fiblist
的列表中,则可以追加到该列表,然后返回它。
此代码产生您想要的答案:
def fib(n):
if n == 1:
return [1]
if n == 2:
return [1, 1]
else:
fiblist = (fib(n - 1))
fiblist.append(fib(n - 1)[n - 2] + fib(n - 2)[n - 3])
return fiblist
print(fib(3))