0
数字が完全な正方形かどうかを調べようとしています。私はこれを行う単純なバイナリ検索アルゴリズムを持っています。無限ループに終わります。私はこれを回避する方法を見つけることができません。誰かがこれで私を助けることができますか?バイナリ検索が無限ループに入ります
def isPerfectSquare(self, num):
"""
:type num: int
:rtype: bool
"""
if num < 1:
return False
start, end = 1, num
while start <= end:
mid = (end - start)//2
if mid * mid == num:
return True
elif mid * mid < num:
start = mid + 1
else:
end = mid
return False
whileの2行目として 'print(start、mid、end)'を入れてください... –
@JonClements何が起こっているのか分かりませんそれを修正する方法。あなたはそれを助けることができますか? –
あなたの質問にそれを含めるには編集してください - あなたが知っていることを説明し、それを修正する方法を見つけることができないという問題を説明してください。それはあなたの正確な問題が何であるかを推測するために答えたい人を救うでしょう。 –