题目
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/valid-perfect-square
给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False。
说明:不要使用任何内置的库函数,如 sqrt。
示例 1:
输入:16
输出:True
示例 2:
输入:14
输出:False
解法
- 解法一
func isPerfectSquare(num int) bool {
halfNum := num / 2
for {
powerV := halfNum * halfNum
if powerV > num {
halfNum = halfNum / 2
continue
}
if powerV < num {
halfNum++
powerV = halfNum * halfNum
if powerV > num {
return false
}
continue
}
if powerV == num {
return true
}
}
}
- 解法二
func isPerfectSquare(num int) bool {
i := 1
for num > 0 {
num -= i
i += 2
}
if num == 0 {
return true
}
return false
}