簡體   English   中英

Codechef Python運行時錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM