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