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

Kiểm tra số chỉ có bit đầu và bit cuối được set trong Python

Cho số n. Kiểm tra xem biểu diễn nhị phân có chỉ có hai bit 1 ở vị trí đầu (MSB) và cuối (LSB) không.

Ví dụ: n=17 (10001) → True.

Thuật toán

  • Nếu n == 1 → True.
  • Kiểm tra n-1 có phải lũy thừa của 2 không: (n-1) & (n-2) == 0.

Ví dụ code

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

Đầu vào

17

Đầu ra

True