案例1:2的幂 给你一个整数n,请你判断该整数是否是2的幂次方举例: n=1输出:yes n=2 输出:yes n=3输出:no
时间: 2024-10-12 09:05:50 浏览: 16
案例1中的问题是关于检查一个整数`n`是否能表示为2的幂次方。要解决这个问题,你可以使用循环或位运算的方式进行判断。这里提供一种简单的C语言代码解决方案:
```c
#include <stdbool.h>
bool isPowerOfTwo(int n) {
if (n <= 0) {
return false; // 非正整数不是2的幂
} else {
return (n & (n - 1)) == 0; // 如果n AND (n-1)的结果为0,说明它是2的幂
}
}
int main() {
int n = 1;
if (isPowerOfTwo(n)) {
printf("yes\n");
} else {
printf("no\n");
}
n = 2;
if (isPowerOfTwo(n)) {
printf("yes\n");
} else {
printf("no\n");
}
n = 3;
if (isPowerOfTwo(n)) {
printf("yes\n"); // 这个例子会输出 "no"
} else {
printf("no\n");
}
return 0;
}
```
这个代码定义了一个名为`isPowerOfTwo`的函数,它接受一个整数`n`,并利用按位与操作(`&`)判断`n`是否只有二进制表示中的最低有效位为1(即n-1不包含额外的1)。如果结果为0,则说明`n`是2的幂。
阅读全文