c++判断一个数是否为完全平方数
时间: 2023-08-22 15:06:04 浏览: 233
C++如何判断一个数字是否为质数
5星 · 资源好评率100%
可以使用牛顿迭代法进行判断,具体代码如下:
```c++
bool isPerfectSquare(int num) {
if(num == 1) return true;
long long x = num / 2;
while(x * x > num) {
x = (x + num / x) / 2;
}
return x * x == num;
}
```
在代码中,我们首先特判 num = 1 的情况,然后初始化 x = num / 2,然后使用牛顿迭代法进行求解。如果 x * x 大于 num,则将 x 更新为 (x + num / x) / 2,直到 x * x 等于 num 或者 x * x 小于 num 为止。
最后,我们只需要判断 x * x 是否等于 num 即可判断 num 是否为完全平方数。注意在进行计算时,为了避免 overflow,我们将 x 和 num 定义为 long long 类型。
阅读全文