[英]Codechef python runtime error
我總是使用python在codechef上提交時遇到運行時錯誤。 有人可以幫忙嗎? 試圖回答其他問題也..相同的錯誤雖然在我的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
我不參加Codechef比賽,但AFAIK使用Python 2.5而不是2.6。 也許您使用的是2.5特定的? (盡管我找不到任何東西)。
編輯:
現在看來,問題根本不在Python版本中。 注意,在問題陳述中,輸入值N可以大到10 ^ 9。 嘗試使用具有如此大的f值的range(1,f+1)
將使解釋器嘗試構建包含10 ^ 9個元素的list
。 這將明顯超出判斷機上此問題的內存限制,從而導致出現未捕獲的異常,並向您顯示為RTE。
FWIW,您解決問題的方法是錯誤的。 即使您用xrange
替換range
以避免內存限制,您仍然會嘗試10 ^ 9次迭代,這會使解決方案超時。
事情在2.6和2.5以及2.4下都可以運行。 i, j = 0, 0
很好,因為非常古老的Python版本(例如1.5)。 該程序甚至會讀取輸入並正確計算結果(如果緩慢)。 雖然我會嘗試sys.stdin.readline().strip()
而不是raw_input()
。
除非您指定要獲取哪個RuntimeError
,最好是使用stacktrace,否則幾乎沒有人可以幫助您,所有心靈感應都在休假。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.