(2)判断平方数

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

你可能感兴趣的:((2)判断平方数)