欢迎访问宙启技术站
智能推送

Python实现判断一个数是否为完全平方数

发布时间:2023-12-04 18:43:45

要判断一个数是否为完全平方数,可以使用二分查找的方法来进行判断。二分查找的思想是在给定的范围内,找到中间元素进行比较,根据比较结果缩小查找范围,直到找到目标元素或确定目标元素不存在。

具体实现步骤如下:

1. 定义一个函数 isPerfectSquare(num),接受一个整数 num 作为参数。

2. 初始化变量 left 为 0,rightnum

3. 使用循环进行二分查找,直到 left 大于 right。循环条件可以是 while left <= right

4. 在循环中,计算中间元素 mid 的值,可以使用 mid = (left + right) // 2

5. 判断 mid 的平方是否等于 num,如果等于,说明 num 是完全平方数,返回 True

6. 如果 mid 的平方小于 num,说明目标元素在右侧,更新 left = mid + 1

7. 如果 mid 的平方大于 num,说明目标元素在左侧,更新 right = mid - 1

8. 如果循环结束都没有找到目标元素,说明 num 不是完全平方数,返回 False

以下是完整的代码实现:

def isPerfectSquare(num):
    left = 0
    right = num
    
    while left <= right:
        mid = (left + right) // 2
        
        if mid**2 == num:
            return True
        elif mid**2 < num:
            left = mid + 1
        else:
            right = mid - 1
    
    return False

使用例子:

print(isPerfectSquare(16))  # 输出 True
print(isPerfectSquare(14))  # 输出 False
print(isPerfectSquare(25))  # 输出 True
print(isPerfectSquare(0))   # 输出 True
print(isPerfectSquare(1))   # 输出 True

在这个例子中,isPerfectSquare 函数分别判断了 16、14、25、0 和 1 是否为完全平方数。输出结果都是根据实际情况判断得出的。