367. 有效的完全平方数
给定一个 正整数 num
,编写一个函数,如果 num
是一个完全平方数,则返回 true
,否则返回 false
。
进阶:不要 使用任何内置的库函数,如 sqrt
。
示例 1:
输入:num = 16
输出:true
示例 2:
输入:num = 14
输出:false
题解
我的题解
class Solution:
def isPerfectSquare(self, num: int) -> bool:
val = num
while abs(num - val ** 2) > 0.1:
val = (val + num/val)/2
print(val)
return int(val) ** 2 == num
评论区的奇技淫巧
- 利用 1+3+5+7+9+…+(2n-1)=n^2,即完全平方数肯定是前n个连续奇数的和
2.没用库吧[Doge]
# 没用库吧
return num**0.5 % 1 == 0