斯波吉,地址。(最难解决的#2)使用python

2024-04-20 07:01:43 发布

您现在位置:Python中文网/ 问答频道 /正文

问题陈述可以在这里找到: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

我只是在程序中反复使用这个来得到答案。你知道吗

斯波吉总是给出错误的答案。我不知道为什么。它每次都给出了正确的答案,我试着把程序写得一模一样,但是很明显,尽管每次我都得到了正确的答案,但还是出了问题。我试着输入负值,零,我也试着通过插入print语句进行调试。一切对我来说都是顺其自然。我错过了什么?你知道吗

另外,我不能写简明的代码,因为我只是个初学者。你知道吗


Tags: 答案inputlenifintprintcontinuewhile
1条回答
网友
1楼 · 发布于 2024-04-20 07:01:43
N=input('no. of test cases bruh:')

我认为问题出在输入语句上。大多数有竞争力的编程网站,都会检查输出流中指定的格式是否相同。在你的例子中,它的输出是

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

因此答案是错误的,因为它不符合预期的产出。 请从输入语句中删除帮助文本以解决此问题。你知道吗

相关问题 更多 >