题目:
给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回 false 。
进阶:不要 使用任何内置的库函数,如 sqrt 。
算法:
func isPerfectSquare(num int) bool {
preRes, res := 1, 1
for i := 1; i < math.MaxInt32; i++ {
res = i * i
if res == num {
return true
// 考虑溢出
} else if res > num || res < preRes {
break
}
preRes = res
}
return false
}