我正在尝试解决Sphere Online Judge(SPOJ)上的一个问题,它要求我打印1和n之间的所有整数,这些整数可以被x整除但不能被y整除。当我在Python上测试时,我的代码是正确的IDE但是当我尝试在SPOJ上输入它时,我得到运行时错误(NZEC),什么是NZEC,为什么我会得到它?这是我的代码:
test_cases = raw_input()
input = []
list = []
for z in xrange(int(test_cases)):
input = raw_input()
n,x,y = input.split(' ')
for z in xrange(int(n)):
if z%int(x) == 0 and z%int(y) != 0:
list.append(z)
answer1 = str(list).strip('[]')
answer2 = answer1.replace(',', '')
print answer2
答案 0 :(得分:1)
你是在谈论this问题吗?
我在您的代码中看到了一些问题:
您正在获得NZEC,因为输入中可能有空行,您没有考虑到这一点。 (见下文有关解决此事的微不足道的修改)
此外,您的代码有一个错误,因为z从0到n-1开始,而z应该是> 1,所以z应该在xrange(2,int(n))
您不需要剥离,然后用空格替换逗号。你可以一次性完成(见下文)
我稍微修改了你的代码并通过了测试用例。
def get_line():
while True:
line = raw_input().rstrip()
if not line:
pass
else:
return line
test_cases = get_line()
for _ in xrange(int(test_cases)):
input = get_line()
n,x,y = [int(z) for z in input.split(' ')]
list = []
for z in xrange(2,n):
if z%x == 0 and z%y != 0:
list.append(z)
answer1 = ' '.join(map(str,list))
print answer1