檢查 Python 中數字的二進位制表示是否是迴文數


假設我們有一個數字 n。我們必須檢查 n 的二進位制表示是否是迴文數。

因此,如果輸入如下 n = 9,則輸出將為 True,因為 9 的二進位制表示是 1001,它是迴文數。

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

  • ans := 0
  • while num > 0, do
    • ans := ans * 2
    • 如果 num 為奇數,則
      • ans := ans XOR 1
    • num := num / 2
  • 返回 ans

讓我們看以下實現以獲得更好的理解 −

示例

 線上演示

def reverse_binary(num) :
   ans = 0
   while (num > 0) :
      ans = ans << 1
      if num & 1 == 1 :
         ans = ans ^ 1
      num = num >> 1
   return ans
def solve(n) :
   rev = reverse_binary(n)
   return n == rev
n = 9
print(solve(n))

輸入

9

輸出

True

更新於: 30-12-2020

254 次瀏覽

開始 職業生涯

完成課程獲得認證

立即開始
廣告