目录
1 题目
给定一个正整数num ,判断是否为完全平方数,要求当num为完全平方数时返回True,否则返回False。
2 分析
思路:
- 完全平方数开根号后是一个整数,非完全平方数开根号的话是一个非整数
- 开根号后取整,如果开根号后是整数的话就不会改变值的大小
- 取整后再平方,如果值和之前一样,说明是完全平方数
3 代码实现
3.1条件判断实现
#=======3.1条件判断实现==============
class Solution:
def isPerfectSquare(self, num):
start = 1
end = num
while start <= end:
mid = start + (end - start) // 2
sqr = mid ** 2
if sqr < num:
start = mid + 1
elif sqr > num:
end = mid - 1
else:
return True
return False
s = Solution()
print(s.isPerfectSquare(100))
print(s.isPerfectSquare(9))
print(s.isPerfectSquare(8))
#结果
True
True
False
3.2 利用第三方库函数实现
#===3.2利用第三方库函数实现====
import math
def isSqr(n):
a = int((math.sqrt(n)))
return a * a == n
print(isSqr(16))
print(isSqr(8))
#结果
True
False
Process finished with exit code 0