Computer >> Máy Tính >  >> Lập trình >> Python

Kiểm tra xem biểu diễn nhị phân của một số có phải là palindrome trong Python hay không

Giả sử chúng ta có một số n. Chúng ta phải kiểm tra xem biểu diễn nhị phân của n có phải là palindrome hay không.

Vì vậy, nếu đầu vào là n =9, thì đầu ra sẽ là True vì biểu diễn nhị phân của 9 là 1001, là palindrome.

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • ans:=0
  • while num> 0, do
    • ans:=ans * 2
    • nếu num là số lẻ, thì
      • ans:=ans XOR 1
    • num:=num / 2
  • trả lại ans

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

Ví dụ

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))

Đầu vào

9

Đầu ra

True