1. 问题描述
给定一个正整数num,判断是否为完全平方数,要求当num为完全平方数时返回True,否则返回False。
2. 问题示例
输入num=16,输出True,sqrt(16)=4;输入num=15,输出False,sqrt(15)=3.87。
3. 代码实现
class Solution:
def isPerfectSquare(self, num):
l = 0 # 左值
r = num # 右值
while (r - l > 1): # 当右值 - 左值 >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 = 17
print("初始值:", num)
solution = Solution()
print("结果:", solution.isPerfectSquare(num))
4.结果
初始值: 17
结果: False
网友评论