Online Compiler C

#include <stdio.h> int is2pow(int n) { if (n < 1) return 0; if (n == 1) return 1; if (n % 2 == 0) { return is2pow(n / 2); } else return 0; } int main() { printf("%d", 4); return 0; }
这段代码定义了一个递归函数 `is2pow`,用于判断整数 `n` 是否为2的幂。函数从 `n` 开始,如果 `n` 小于1则返回0,等于1则返回1,如果能被2整除则递归检查 `n/2`,否则返回0。但 `main` 函数中直接打印了数字4,没有调用 `is2pow` 函数,所以程序只会输出4,不会展示判断结果。

- 在 `main` 函数中,你需要调用 `is2pow` 函数并传入一个测试值,而不是直接打印固定数字。例如,可以尝试测试几个不同的输入。
- 注意递归的终止条件:当 `n` 为1时返回1,但也要考虑 `n` 为0或负数的情况,你的代码已经处理了小于1的情况。