檢查一個數是否能被 2 的 n 次方整除,不使用 Python 中的算術運算子


假設我們有兩個數字 x 和 n。我們需要檢查 x 是否可以被 2^n 整除,不使用算術運算子。

因此,如果輸入為 x = 32 n = 5,則輸出將為 True,因為 32 = 2^5。

要解決這個問題,我們將遵循以下步驟 −

  • 如果 x AND (2^n - 1) 為 0,則
    • 返回 True
  • 返回 False

示例

讓我們來看以下實現,以更好地理解 −

 線上演示

def solve (x, n):
   if (x & ((1 << n) - 1)) == 0:
      return True
   return False
x = 32
n = 5
print(solve(x, n))

輸入

32, 5

輸出

True

更新日期: 2021 年 1 月 19 日

346 次瀏覽

開啟你的 職業生涯

透過完成課程獲取認證

開始
廣告