while循环案例1:2的幂 给你一个整数n,请你判断该整数是否是2的幂次方举例: n=1输出:yes n=2 输出:yes n=3输出:no
时间: 2024-10-12 10:06:26 浏览: 26
当我们要判断一个整数n是否为2的幂时,可以通过对数运算来进行。如果一个数n是2的幂,那么它的二进制表示中只有一位是1(其余都是0),即 log2(n) 是一个整数。下面是使用 `while` 循环实现的一个简单C语言例子:
```c
#include <stdio.h>
#include <math.h> // 需要包含 math.h 来使用 log 函数
int main() {
int n, i = 0;
printf("请输入一个整数: ");
scanf("%d", &n);
if (n <= 0) { // 检查输入是否非负
printf("输入错误! 只接受正整数。\n");
return 1;
}
while (i * i < n) { // 当i的平方小于n时继续循环
i++;
if (i * i == n) { // 如果找到i使得i^2等于n,说明n是2的幂
printf("yes\n");
break;
}
}
if (i * i != n) { // 如果没有找到满足条件的i,则不是2的幂
printf("no\n");
}
return 0;
}
```
在这个程序中,我们用 `i` 从1开始逐个检查,看是否存在 `i` 使得 `i*i` 等于 `n`。如果找到了这样的 `i`,我们就知道 `n` 是2的幂;如果没有找到,那就不是。
阅读全文