在 Python 中检查数字只设置了第一位和最后一位位
假设我们有一个数字 n。我们必须检查这个数字是否只在第一位和最后一位设置了两个位。
因此,如果输入为 n = 17,则输出为 True,因为 n 的二进制表示为 10001,只有第一位和最后一位为 1。
为了解决这个问题,我们将遵循以下步骤 -
- 如果 n 等于 1,则
- 返回 True
- 如果 n - 1 是 2 的幂,则返回 true,否则返回 false
让我们看看以下实现来获得更好的理解 -
示例代码
def is_pow_of_two(n): return (n & n-1) == 0 def solve(n): if n == 1: return True return is_pow_of_two (n-1) n = 17 print(solve(n))
输入
17
输出
True
广告