给你一个整数n,请你判断该整数是否是2的幂次方 举例: n=1 输出:yes n=2 输出:yes n=3 输出:no 用while循环
时间: 2024-10-17 12:15:24 浏览: 46
要判断一个整数 `n` 是否是 2 的幂次方,你可以使用如下的 C++ 代码实现,利用 while 循环来不断除以 2 直到结果为 1 或者 n 变成 1:
```cpp
#include <iostream>
bool isPowerOfTwo(int n) {
if (n <= 0) {
return false; // 如果 n 是负数或零,则不是 2 的幂次方
}
int power = 0;
while (n % 2 == 0) { // 当 n 是偶数时(即能被 2 整除)
n /= 2; // 除以 2
++power; // 增加幂次
}
return n == 1; // 如果 n 最终变成 1,说明它是 2 的幂次方,否则不是
}
int main() {
int n;
std::cout << "请输入一个整数: ";
std::cin >> n;
if (isPowerOfTwo(n)) {
std::cout << n << " 是 2 的幂次方" << std::endl;
} else {
std::cout << n << " 不是 2 的幂次方" << std::endl;
}
return 0;
}
```
阅读全文