判断一个数是否为完全平方数 C++
时间: 2023-09-17 13:11:17 浏览: 974
判断一个数是否为完全平方数可以通过求平方根的方法来实现,如果该数的平方根是整数,则该数为完全平方数。
以下是 C++ 代码实现:
```c++
#include <iostream>
#include <cmath>
using namespace std;
bool isPerfectSquare(int num) {
int root = sqrt(num);
return root * root == num;
}
int main() {
int num;
cout << "请输入一个正整数:";
cin >> num;
if (isPerfectSquare(num)) {
cout << num << " 是完全平方数。";
} else {
cout << num << " 不是完全平方数。";
}
return 0;
}
```
其中 `isPerfectSquare` 函数用来判断一个数是否为完全平方数,通过求平方根来实现。在主函数中,首先输入一个正整数,然后调用 `isPerfectSquare` 函数来判断该数是否为完全平方数,并输出结果。
相关问题
用 c++判断一个数是否为完全平方数
判断一个数是否为完全平方数可以使用二分法,我们可以从1到num/2进行二分查找,找到一个数mid,然后计算mid*mid是否等于num,如果等于,说明num是完全平方数,返回true;如果mid*mid大于num,则在左半部分查找;如果mid*mid小于num,则在右半部分查找。如果最后没有找到完全平方数,则说明num不是完全平方数,返回false。下面是C++代码实现:
```
bool isPerfectSquare(int num) {
int left = 1, right = num / 2;
while (left <= right) {
long long mid = (left + right) / 2;
if (mid * mid == num) {
return true;
} else if (mid * mid < num) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return false;
}
```
c++判断一个数是否为完全平方数
可以使用数学方法或者二分查找的方法来判断一个数是否为完全平方数。以下是两种方法的具体实现:
方法一:数学方法
如果一个数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的平方。
阅读全文