python 编写一个递归函数来判断它是否是 2 的幂次方
时间: 2024-01-17 11:04:55 浏览: 93
判断一个整数是否是2的N次幂实现方法
好的,以下是一个递归函数来判断一个数是否是 2 的幂次方的 Python 代码:
```python
def is_power_of_two(n):
if n == 1:
return True
elif n % 2 != 0 or n == 0:
return False
else:
return is_power_of_two(n // 2)
```
这个函数的思路是,如果一个数是 2 的幂次方,那么它的二进制表示中只有一位是 1,其余都是 0。例如,4 的二进制表示是 100,8 的二进制表示是 1000,16 的二进制表示是 10000。
所以,我们可以用递归的方法,每次将这个数除以 2,直到它变成 1 或者是奇数,如果变成 1,那么它就是 2 的幂次方;如果变成奇数,或者本来就是 0,那么它就不是 2 的幂次方。
阅读全文