2

Python を使用して SPOJ でいくつかの質問をしました。いくつか正解しました。ほとんどの場合、NZECを取得し続けます。コードの最後に sys.exit(0) を追加しました。しかし、それでも同じことを示しています。

私の書き方の練習がその誤りを犯しているかどうかを知りたかった. 変更を提案してください。私のアルゴは書き込みだと思いますが、間違っている場合は変更を提案してください。

ここに質問へのリンクがあります。

http://www.spoj.com/problems/NSTEPS/

def check_num(m,n):
    if(m!=n and m!=n+2):
        return 0;
    elif(m==n) :
        if(m%2==1):
            a=int((m+1)/2)-1;
            return (1+a*4);
        else :
            a=int(m*2);
            return(a);
    elif(m==n+2):
        if(n%2==1):
            a=int((n+1)/2)+1;
            return (3+a*4);
        else :
            a=int(n*2);
            return(2+a);            
import sys;
inp=sys.stdin.read().split("\n");
N=int(inp[0]);
i=1;
l=dict();
b=dict();
c=dict();
for i in range(1,N+1):
    a=inp[i];
    k=0;
    b[i],c[i]=[int(a[k]),int(a[k+2])];
    if (b[i]==0 and c[i]==0):
        l[i]=0;
    else :
    l[i]=check_num(b[i],c[i]);
for i in range(1,N+1):
    if (l[i]==0):
        if (c[i]==0 and b[i]==0):
            print l[i];
        else:
            print "No Number";
    else :
        print l[i];
sys.exit(0)

前もって感謝します。

4

3 に答える 3

0

NZEC は主に配列インデックスによるものです。例: 一般的な例: string s = ''; s[0] = 'a' は NZEC を返します また、範囲外の配列インデックスは NZEC を返します

配列インデックスをできる限り避けるようにしてください。代わりに「for..in」のような構造を使用してください

于 2014-04-05T15:23:59.163 に答える