c语言用递归判断n是否为2的幂次方
时间: 2024-09-19 11:05:07 浏览: 43
文件filec中的内容为-C语言函数汇编
在C语言中,可以使用递归函数来判断一个整数`n`是否为2的幂次方。递归的基本思路是:如果`n`恰好等于1,那么它是2的0次方(即1),是一个幂次方;如果不是1,那就检查`n`除以2的余数是否为0,如果是,则继续将`n`除以2并递归地检查新结果;如果不是,说明不是2的幂次方。
以下是一个简单的递归函数示例:
```c
#include <stdio.h>
int isPowerOfTwo(int n) {
if (n <= 0) // 边界条件,负数和0都不是2的幂次方
return 0;
else if (n == 1) // 1是2的0次方
return 1;
else { // 非边界情况,看n是否能被2整除
if (n % 2 == 0)
return isPowerOfTwo(n / 2); // 递归调用,继续检查n/2
else
return 0; // 如果n除以2有余数,说明不是2的幂次方
}
}
int main() {
int num = 8; // 测试数字
if (isPowerOfTwo(num))
printf("%d 是2的幂次方\n", num);
else
printf("%d 不是2的幂次方\n", num);
return 0;
}
```
阅读全文