Python实现判断一个数是否为完全平方数
发布时间:2023-12-04 18:43:45
要判断一个数是否为完全平方数,可以使用二分查找的方法来进行判断。二分查找的思想是在给定的范围内,找到中间元素进行比较,根据比较结果缩小查找范围,直到找到目标元素或确定目标元素不存在。
具体实现步骤如下:
1. 定义一个函数 isPerfectSquare(num),接受一个整数 num 作为参数。
2. 初始化变量 left 为 0,right 为 num。
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 是否为完全平方数。输出结果都是根据实际情况判断得出的。
