有效的完全平方数
给定一个 正整数 num
,编写一个函数,如果 num 是一个完全平方数,则返回 true
,否则返回 false
。
进阶:不要 使用任何内置的库函数,如 sqrt
。
示例 1:
输入:num = 16
输出:true
示例 2:
输入:num = 14
输出:false
提示:
1 <= num <= 2^31 - 1
我的代码:
// 使用sqrt的版本
class Solution {
public:
// 考查下sqrt的使用
bool isPerfectSquare(int num) {
return (int) sqrt(num) * (int) sqrt(num) == num;
}
};
// 进阶版本
class Solution {
public:
bool isPerfectSquare(int num) {
// 慢慢枚举
long x = 1, square = 1;
while (square <= num) { // 如果square大于num了之后还没有出去 那么就是false了
if (square == num) {
return true;
}
++x;
square = x * x;
}
return false;
}
};