SPOJ,ADDREV。 (最解决的#2)与python

时间:2015-08-28 17:03:46

标签: python python-2.7

问题陈述可以在这里找到:http://www.spoj.com/problems/ADDREV/

我写了这个解决方案:

N=input('no. of test cases bruh:')
yeah=0
while 0< N <= 10000 and yeah<N:
    a, b=raw_input(':').split()
    if int(a)<=0:
        yeah=yeah+1
        continue
    z=0
    n=1
    while int(a)%10==0:
        a=int(a)/10
        a=str(a)
    y=len(a)
    while n<=y:
        z=(10**(y-n))*int((a[y-n])) + z
        n=n+1
    if int(b)<=0:
        yeah=yeah+1
        continue
    z2=0
    n2=1
    while int(b)%10==0:
        b=int(b)/10
        b=str(b)
    x=len(b)
    while n2<=x:
        z2=(10**(x-n2))*int((b[x-n2])) + z2
        n2=n2+1
    fakeans=str(z+z2)
    ans=0
    n3=1
    while int(fakeans)%10==0:
        fakeans=int(fakeans)/10
        fakeans=str(fakeans)
    x=len(fakeans)
    while n3<=x:
        ans=(10**(x-n3))*int((fakeans[x-n3])) + ans
        n3=n3+1
    print ans
    yeah=yeah+1

下面的代码应该检查并省略零:

while int(a)%10==0:
            a=int(a)/10
            a=str(a)

该位应该反转数字:

while n<=y:
            z=(10**(y-n))*int((a[y-n])) + z
            n=n+1

我只是在程序中重复使用它来得到答案。

SPOJ继续给出错误答案。我不知道为什么。它每次都给出了正确的答案,我试着准确地编写程序,但是很明显,即使我每次都得到正确答案,也会出现问题。我试图输入负值,零,我也尝试通过插入print语句进行调试。一切都按照我的要求运行。我在这里缺少什么?

P.S。我不能写简洁的代码,因为我只是一个初学者。

1 个答案:

答案 0 :(得分:0)

N=input('no. of test cases bruh:')

我认为问题在于输入语句。大多数竞争性编程站点,检查输出流是否指定相同的格式。在您的情况下,其输出将是

no. of test cases bruh:
:
34
:
1998
:
1

因而错误的答案,因为它与预期的输出不匹配。 从输入语句中删除帮助文本以解决此问题。