这是一段简单的代码,它假设读取n个数字,并假设打印出n个数字中有多少可以被k整除
n=int(raw_input())
k=int(raw_input())
ans=0
while n > 0:
t=int(raw_input())
if(t%k == 0):
ans = ans + 1
n = n - 1
print ans
我在codechef上发现NZEC错误。有人能指出问题出在哪里吗?自从上周以来,这个NZEC错误一直困扰着我。我是python新手,在互联网上搜索了很多,但找不到任何具体的东西。我得到的答案是NZEC错误发生在堆栈大小超出限制时。但是我的代码有什么问题吗?
当代码抛出异常时,codechef将向您显示NZEC。出现此错误有许多可能的原因,包括但不限于不安全的输入处理、在不存在/不正确的数据上操作、除以零。
在你的情况下,这个问题可以通过Reshure来解决。虽然处理其他情况是特定于代码的,但我们可以编程以避免由于不安全的输入处理而导致NZECs。其思想是立即读取输入并使用空格作为分隔符对其进行标记。
在您的情况下,这将如下:
你得到NZEC错误,因为当你在Python中输入空间分隔的整数时,它被当作一个字符串,而不是两个整数,如C、C++和java: 在您的情况下,这应该有效:
还要记住,在python中输入由空格分隔的整数数组是:
我想codechef的问题是this one。你应该考虑到n和k的值在10^7左右,这可能是你的程序的问题。
而且,n和k在同一条线上。您正在使用原始输入两次,因此您正在读取两行。这可以通过以下方法解决:
如果这没有帮助,可以尝试在xrange上循环,或者使用其他算法。
相关问题 更多 >
编程相关推荐