我是 Python 的初学者,我遇到了一个奇怪的越界错误。
这个想法是我需要使用以下方法初始化缓存:
arr = [0]*1000000
然后通过调用在同一个函数中访问
def func (i) :
k=1
a = i
arr = [0]*1000000
while (i>1):
if arr[i] != 0:
k = k + arr[i] - 1
break
if i%2 == 0:
i = i/2
else:
i = 3*i + 1
k += 1
arr[a] = k
return k
如果我的值超过 1500,它会给我一个越界错误。然而,缓存应该被初始化为一百万个整数。我错过了什么吗?谢谢