c++判断一个数是否为完全平方数
时间: 2023-08-22 08:06:44 浏览: 308
C++如何判断一个数字是否为质数
5星 · 资源好评率100%
可以使用数学方法或者二分查找的方法来判断一个数是否为完全平方数。以下是两种方法的具体实现:
方法一:数学方法
如果一个数n是完全平方数,那么它的平方根一定是整数。因此可以求出n的平方根,判断是否为整数即可。
```c++
bool isPerfectSquare(int n) {
int root = sqrt(n);
return root * root == n;
}
```
方法二:二分查找
由于完全平方数是一串连续的整数的平方,因此可以使用二分查找的方法来查找这个数是否为完全平方数。具体实现如下:
```c++
bool isPerfectSquare(int n) {
int left = 0, right = n;
while (left <= right) {
int mid = left + (right - left) / 2;
long long square = (long long)mid * mid;
if (square == n) {
return true;
} else if (square < n) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return false;
}
```
注意,由于mid的平方可能会溢出int的范围,因此需要使用long long类型来保存mid的平方。
阅读全文