繁体   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