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