Python - IndexError不适合长期'到索引大小的整数

时间:2015-03-12 11:18:22

标签: python-2.7

我的代码适用于小型测试用例但显示

IndexError:不能使'long'适合索引大小的整数

当我使用大号时。

global mod
mod = 1000000007
global lim
lim = 10010
global cnt
cnt = [[None for x in range(0,4)] for x in range(0,lim+1)]
def precomp():
    cnt[2][0] = cnt[2][1] = cnt[2][2] = 1
    for i in range(3,lim):
        cnt[i][0] = cnt[i-1][2] % mod
        cnt[i][1] = cnt[i-1][0] % mod
        cnt[i][2] = (cnt[i-1][2] + cnt[i-1][1]) % mod

t = input()
precomp()
for iterate in range( t ):
   n = long(raw_input())
   print long((cnt[n][0] + cnt[n][1] + cnt[n][2]) % mod)

当我用以下输入测试案例时:

2

2

3

但是当我使用以下输入时:

3

28488106923106212

18451226948892907

5082944357138639

显示错误。我可以设置2D列表大小的其他方法是什么,或者可以克服这个错误?通过改变(0,4)的范围不给出错误但是花费很长时间。

0 个答案:

没有答案