在 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

更新于: 16 年 1 月 2021 日

124 视图

开启你的 职业生涯

通过完成课程获得认证

开始
广告