问题描述
给定一个正整数num, 判断是否为完全平方数,要求当num为完全平方数时返回True, 否则返回False
问题示例
Input: 16
Output: True
Input: 15
Output: False
代码实现
# -*- coding:utf-8 -*-
# @Time :2022/7/17 12:46
# @AUTHOR :booozai
# @SOFTWARE :PycharmProjects
class Solution:
def isPerfectSquare(self, num):
l = 0
r = num
while (r - l > 1):
mid = (l + r) / 2
if (mid * mid <= num):
l = mid
else:
r = mid
ans = l
if (l * l < num):
ans = r
return ans * ans == num
if __name__ == '__main__':
num = 16
soution = Solution()
print("Input: ", num)
print("Output: ", soution.isPerfectSquare(num))
算法思想
对分查找