【leetcode】367. 有效的完全平方数
给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回 false 。
进阶:不要 使用任何内置的库函数,如 sqrt 。
示例 1:
输入:num = 16
输出:true
示例 2:
输入:num = 14
输出:false
提示:
1 <= num <= 2^31 - 1
解题思路:
x从1递增,计算x的平方,只要x的平方小于等于num,就一直递增再平方,判断x的平方与num是否相等,若相等,说明找的了该开平方数,也就是num是一个完全平方数,返回true。若在x的平方小于等于num的所有的数x中,都没有找到满足条件的x,则说明找不到num的开平方数,也就是说num不是完全平方数,返回false。
代码:
python3:
class Solution:
def isPerfectSquare(self, num: int) -> bool:
x = 1
square = 1
while square <= num:
if square == num:
return True
x += 1
square = x * x
return False