在 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 檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.