c++如何说明一个long long类型的数的开方是整数
时间: 2024-10-07 13:02:36 浏览: 26
在C++中,如果想要判断一个`long long`类型的数的平方根是否为整数,你可以通过取平方根后再检查结果是否能被整除来实现。可以使用 `<cmath>` 库中的 `sqrt()` 函数以及 `%` 运算符。以下是一个简单的示例:
```cpp
#include <iostream>
#include <cmath>
bool isPerfectSquareLL(long long num) {
long double sqrt_num = std::sqrt(num);
return (std::abs(sqrt_num - static_cast<long long>(sqrt_num)) == 0);
}
int main() {
long long test_number;
std::cout << "Enter a number: ";
std::cin >> test_number;
if (isPerfectSquareLL(test_number)) {
std::cout << test_number << " is a perfect square." << std::endl;
} else {
std::cout << test_number << " is not a perfect square." << std::endl;
}
return 0;
}
```
在这个程序中,`isPerfectSquareLL` 函数首先计算输入数的平方根,然后将它转换为`long long`类型并取绝对值。如果这个值与原来的平方根之间的小数部分绝对相等(即0),那么原数就是完全平方数。
阅读全文