问题陈述可以在这里找到: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。我不能写简洁的代码,因为我只是一个初学者。
答案 0 :(得分:0)
N=input('no. of test cases bruh:')
我认为问题在于输入语句。大多数竞争性编程站点,检查输出流是否指定相同的格式。在您的情况下,其输出将是
no. of test cases bruh:
:
34
:
1998
:
1
因而错误的答案,因为它与预期的输出不匹配。 从输入语句中删除帮助文本以解决此问题。