c++判断一个数是否为完全平方数
作者:野牛程序员:2023-07-23 19:31:27 C++阅读 3448
在C++中,可以使用以下方法来判断一个数是否为完全平方数:
方法一:循环遍历法 在这种方法中,我们从1开始逐个尝试每个数,直到找到它的平方等于给定的数,或者找到一个大于给定数的平方(此时可以判断给定数不是完全平方数)。
#include <iostream>
bool isPerfectSquare(int num) {
for (int i = 1; i <= num / i; i++) {
if (i * i == num) {
return true;
}
}
return false;
}
int main() {
int num;
std::cout << "Enter a number: ";
std::cin >> num;
if (isPerfectSquare(num)) {
std::cout << num << " is a perfect square." << std::endl;
} else {
std::cout << num << " is not a perfect square." << std::endl;
}
return 0;
}方法二:二分查找法 在这种方法中,我们可以使用二分查找来快速找到给定数的平方根,如果平方根是整数,则给定数是完全平方数。
#include <iostream>
bool isPerfectSquare(int num) {
if (num < 0) return false;
long left = 0;
long right = num;
while (left <= right) {
long mid = left + (right - left) / 2;
long square = mid * mid;
if (square == num) {
return true;
} else if (square < num) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return false;
}
int main() {
int num;
std::cout << "Enter a number: ";
std::cin >> num;
if (isPerfectSquare(num)) {
std::cout << num << " is a perfect square." << std::endl;
} else {
std::cout << num << " is not a perfect square." << std::endl;
}
return 0;
}无论选择哪种方法,都可以判断给定的数是否为完全平方数。第二种方法(二分查找法)更加高效,特别是对于大数值的输入。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

- 上一篇:c++判断一个数是否为完数
- 下一篇:c++判断一个数是否为素数
