SPOJ中Python中的NZEC错误

SPOJ中Python中的NZEC错误,python,Python,我认为我的算法是正确的(做得非常糟糕),但我在ideone.com上得到了理想的输出。但在SPOJ中,它一直在说“运行时错误NZEC”。请提出一些修改建议,以使其正确 以下是问题的链接: 这是我的密码: import sys; a=dict(); c=dict(); a[1]=[1,1,1,1]; a[2]=[2,4,8,6]; a[3]=[3,9,7,1]; a[4]=[4,6,4,6]; a[5]=[5,5,5,5]; a[6]=[6,6,6,6]; a[7]=[7,9,3,1]; a[8

我认为我的算法是正确的(做得非常糟糕),但我在ideone.com上得到了理想的输出。但在SPOJ中,它一直在说“运行时错误NZEC”。请提出一些修改建议,以使其正确

以下是问题的链接:

这是我的密码:

import sys;
a=dict();
c=dict();
a[1]=[1,1,1,1];
a[2]=[2,4,8,6];
a[3]=[3,9,7,1];
a[4]=[4,6,4,6];
a[5]=[5,5,5,5];
a[6]=[6,6,6,6];
a[7]=[7,9,3,1];
a[8]=[8,4,2,6];
a[9]=[9,1,9,1];
a[10]=[0,0,0,0];
inp=sys.stdin.read().strip().split();
t=int(inp[0]);
readat=1;
for i in xrange(t):
    m,n=map(long,inp[readat:readat+2]);
    r=n%4;
    s=m%10;
    c[i]=a[s][r-1];
    readat=readat+2;
for i in xrange(t):
    print c[i]; 

第一件事。如果您使用的是Python,则不必以分号“;”结束语句!(如果你有写很多C程序的习惯,没关系!)

第二,如果只需要1就可以完成循环,那么不应该使用2。(打印可以在第一个循环中执行,但这不是最有效的方式)


您可能知道的
NZEC
错误代表
Non-Zero Exit code
,它是由于
KeyError
而由Python为您的代码返回的。注意你的字典
a
的键是1到10,而不是
0
<当s是10的倍数时,code>m%10将为0。因此
a[10]
实际上应该是
a[0]

现在我改为:现在它给出了错误的答案<代码>导入系统;a=dict();[1]=[1,1,1,1]a[2]=[2,4,8,6]a[3,9,7,1]a[4]=[4,6,4,6]a[5]=[5,5,5,5]a[6]=[6,6,6,6]a[7,9,3,1]a[8]=[8,4,2,6]a[9]=[9,9,1]a[0]=[0,0]inp=sys.stdin.read();inp=inp.split();t=int(inp[0])readat=1表示x范围内的i(t):m,n=[inp[readat],inp[readat+1]]m,n=[long(m),long(n)]if(n==0):打印“1”elif(m==0):打印“0”否则:r=n%4 s=m%10如果(r!=0):c=a[s][r-1]如果(r==0):c=a[s][3]readat=readat+2打印c你忘记了什么!(提示-指数=0)我做了相关的更改并得到了正确的答案。您需要单独处理exponent=0的情况。当你得到正确答案时回复!:)得到了正确的答案!!非常感谢!!:)如果你觉得我的答案是正确的,那么请“接受”它并结束问题。