给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False。
说明:不要使用任何内置的库函数,如 sqrt。
示例 1:
输入:16
输出:True
示例 2:
输入:14
输出:False
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/valid-perfect-square
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
class Solution {
public:
bool isPerfectSquare(int x) {
long left = 1;
long right = x;
while(left <= right)
{
long mid = (left + right) / 2;
long tmp = x / mid;
if(tmp == mid)
return (mid*mid == x);
else if(tmp > mid)
{
left = mid + 1;
}
else if(tmp < mid)
{
right = mid - 1;
}
}
return (right*right == x);
}
};
来源:https://blog.csdn.net/weixin_41791402/article/details/97884498