Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Kiểm tra biểu diễn nhị phân của số có phải palindrome trong Python

Cho số n. Kiểm tra xem biểu diễn nhị phân của nó có phải palindrome hay không.

Ví dụ: n=9 → nhị phân 1001 → palindrome → True.

Giải thuật

  • Đảo ngược bit của n (hàm reverse_binary): dịch trái kết quả, nếu bit thấp của n là 1 thì XOR 1, dịch phải n.
  • So sánh n với giá trị đảo ngược.

Mã 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