簡體   English   中英

***超過時間限制*** python 程序出錯

[英]***Time limit exceeded*** error on python program

當我嘗試打印此行時:print(perfect_square(0)) 我應該得到 True 但我得到了超出時間限制的錯誤,我不知道如何修復它。

我嘗試將其更改為 elif 語句而不是 2 個單獨的 if 語句,但我仍然收到該錯誤

這是我當前的代碼:

def perfect_square(n):
    s = 1

    while s != n:
        if s*s == n:
            return True
        elif s == 0:
            return True
        else:
             s +=1
        
    return False



def perfect_cube(n):
    s = 1

    while s != n:
        if s*s * s == n:
            return True
        elif s == 0:
            return True
        else:
             s +=1
        
    return False




我似乎很清楚為什么perfect_square(0)perfect_cube(0)情況會導致無限循環。 您開始s=1並始終遞增它s+=1 它永遠不會等於n=0所以你得到一個無限運行的程序。 也許嘗試檢查n的無效值?

def perfect_cube(n):
    if n < 1: return False
    # ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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