Python 在为斐波那契数列编写代码时,问题I';我面临的是索引错误吗
这里显示的是错误Python 在为斐波那契数列编写代码时,问题I';我面临的是索引错误吗,python,fibonacci,Python,Fibonacci,这里显示的是错误 def calc_fib(n): arr=list() arr[2]=1 arr[1]=1 for i in range(3,n): arr[i]=arr[i-2]+arr[i-1] return arr[n] n = int(input()) print(calc_fib(n)) 回溯(最近一次呼叫最后一次): 文件“”,第16行,在 文件“”,第7行,计算纤维 索引器:列表分配索引超出范围 python数组的最大索引
def calc_fib(n):
arr=list()
arr[2]=1
arr[1]=1
for i in range(3,n):
arr[i]=arr[i-2]+arr[i-1]
return arr[n]
n = int(input())
print(calc_fib(n))
回溯(最近一次呼叫最后一次):
文件“”,第16行,在
文件“”,第7行,计算纤维
索引器:列表分配索引超出范围
python数组的最大索引是n-1
,因此您应该在(2,n)
之间返回a[n-1]
和i
,也许这个更好:
Traceback (most recent call last):
File "<string>", line 16, in <module>
File "<string>", line 7, in calc_fib
IndexError: list assignment index out of range
这是您可以修改的代码。您应该从0开始索引,并在n-1结束
import numpy as np
def calc_fib(n):
arr=np.zeros(n)
arr[1]=1
arr[0]=1
for i in range(2,n):
arr[i]=arr[i-2]+arr[i-1]
return arr[n-1]
n = int(input())
print(calc_fib(n)
这回答了你的问题吗?
def calc_fib(n):
arr=list()
arr = [0,1]
for i in range(2,n):
arr.append(arr[i-2]+arr[i-1])
return arr[n-1]
n = int(input())
print(calc_fib(n))