用 Python 检查数字是否是 2 的幂的程序


假设我们有一个数字 n。我们必须检查 n 是否为 2 的幂。

所以,如果输入类似 n = 2048,那么输出将为 True,因为 2048 是 2^11。

为了解决这个问题,我们将按照以下步骤进行操作:

  • 如果 n 与 0 相同,则

    • 返回 False

  • 当 (n AND (n - 1)) 与 0 相同(否则为 false)时返回 true

示例

让我们看下面的实现以更好地理解

def solve(n):
   if n == 0:
      return False
   return (n & (n - 1)) == 0

n = 2048
print(solve(n))

输入

2048

输出

True

更新日期:2021 年 10 月 11 日

622 次浏览

开启你的 职业生涯

完成课程,获得认证

开始
广告
© . All rights reserved.