![](/img/trans.png)
[英]Why does my Python program issue a runtime error- NZEC( Non-zero exit code)?
[英]Why does this Python code give Runtime Error(NZEC)?
我已經閱讀了其他問題和答案,但是無法為我的代碼實現任何解決方案。 對於該代碼給出運行時錯誤的原因,我仍然一無所知。
我正在嘗試在CodeChef上提交代碼,但是它給出了運行時錯誤(NZEC),盡管代碼在我的控制台上可以完美地運行以進行某些輸入。 這是我的代碼:
def GetSquares(base):
if not base or base < 4:
return 0
else:
x = (base - 4) - (base % 2) + 1
return x + GetSquares(base - 4)
num_test = int(input())
for test in range(num_test):
base = int(input())
print (int(GetSquares(base)))
Codechef對NZEC的解釋:
NZEC代表非零退出代碼。 對於C用戶,如果您的main方法沒有返回值0,則將生成此值;否則,將生成此值。 聲明。 如果其他語言(例如Java / C ++)拋出異常,則可能會生成此錯誤。
我正在嘗試解決的問題:
問題描述說輸入被限制為<10 ^ 4。 那是10,000! 您的代碼將需要對GetSquares進行10,000 / 4 = 2500的遞歸調用,這很多! 實際上,它的確足以給您這個錯誤:
RuntimeError: maximum recursion depth exceeded
您將不得不考慮一種更好的方法來解決不涉及太多遞歸的問題! 因為您正在進行此編碼挑戰,所以我不會在此答案中給出解決方案,因為那樣做可能會破壞目的,但是如果您想對答案提出一些建議,請隨時提出。
該問題對“ B ”的值(最大為10000)施加了約束,這意味着有很多遞歸調用並給出了運行時錯誤。 嘗試使用迭代求解。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.