抗体系统SPOJ

时间:2017-09-12 16:57:31

标签: python

n=int(input())
for i in range(0,n):
    text=input()
    nlist=text.split(' ')
    if nlist[-1]=='machula':
        print(nlist[0]+" + "+nlist[2]+" = "+str(int(nlist[0])+int(nlist2)))
    else:
        print(nlist[0]+" + "+str(int(nlist[-1])-int(nlist[0]))+ " = " +nlist[-1])

代码给出了运行时错误,但在线评判员接受c / c ++中的解决方案没有问题。 可能是python中运行时错误的原因是什么? 问题链接:

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

2 个答案:

答案 0 :(得分:0)

首先,你有一个拼写错误

print(nlist[0]+" + "+nlist[2]+" = "+str(int(nlist[0])+int(nlist2)))

应该是

print(nlist[0]+" + "+nlist[2]+" = "+str(int(nlist[0])+int(nlist[2])))

第二,你的代码对这个问题有错误的想法。试试这个测试用例:

1
2 + 10 = machula2

这将使您的程序崩溃,因为它会将nlist[-1]检测为整数。我不会为整个问题提供解决方案,我只解决运行时错误问题。

答案 1 :(得分:0)

请仔细阅读问题陈述并尝试这种方式:

n=int(input())
for i in range(0,n):
    input()
    nlist=input().split(' ')
    st = "machula"

    if st in nlist[0]:
        print("%d + %s = %s" % (int(nlist[4]) - int(nlist[2]), nlist[2], nlist[4]))
    elif st in nlist[2]:
        print("%s + %d = %s" % (nlist[0], int(nlist[4]) - int(nlist[0]), nlist[4]))
    elif st in nlist[4]:
        print("%s + %s = %d" % (nlist[0], nlist[2], int(nlist[0]) + int(nlist[2])))