我总是在codechef上使用python提交运行时错误。请有人帮忙。 试着回答其他问题..同样的错误 在我的comp上运行正常!(我在我的comp上使用python 2.6.5。用python 2.5检查答案) 这是一个简单的问题,我得到运行时错误 http://www.codechef.com/problems/FCTRL/
我的代码
import sys
def factorial_zeros(f):
i=0
j=0
for x in range (1,f+1):
if x%10 == 0:
while x%10 == 0:
x= x//10
i +=1
while x%5 == 0:
x= x//5
j +=1
elif x%5 == 0:
while x%5 == 0:
x= x//5
j +=1
l = i+j
return l
l=[]
i=int(raw_input())
for x in range(i):
f = int(raw_input())
f= factorial_zeros(f)
if x == i-1:
sys.stdout.write(str(f))
else:
print f
答案 0 :(得分:2)
我不在Codechef竞争/提交,但AFAIK它使用Python 2.5而不是2.6。也许你正在使用2.5特定的东西? (虽然我找不到任何东西)。
编辑:
现在我认为问题不在于Python版本。请注意问题陈述中输入值N可以大到10 ^ 9。尝试具有如此大的f值的range(1,f+1)
将导致解释器尝试构建具有10 ^ 9个元素的list
。这将明显超出判断机器上此问题的内存限制,从而导致未被捕获的异常显示为RTE。
FWIW,您解决问题的方法是错误的。即使您使用range
替换xrange
以避免内存限制,您仍然会尝试10 ^ 9次迭代,这将使您的解决方案超时。
答案 1 :(得分:1)
事情在2.6和2.5下运行正常,而2.4就此而言。
i, j = 0, 0
很好,因为很古老的Python版本,比如1.5。
程序甚至可以读取输入并正确计算结果。虽然我尝试sys.stdin.readline().strip()
而不是raw_input()
。
除非您指定了哪个RuntimeError
,否则最好使用stacktrace,几乎没有人可以帮助您,所有心灵感应都在度假。