Giả sử chúng ta có một số n. Cần kiểm tra xem tất cả các bit trong biểu diễn nhị phân của n có đều là 1 hay không.
Ví dụ, n = 255, đầu ra True vì nhị phân của 255 là 11111111.
Các bước giải quyết:
- Nếu số bằng 0, trả về False.
- Trong khi số > 0:
- Nếu số là chẵn (bit cuối là 0), trả về False.
- Số := số >> 1 (dịch phải 1 bit).
- Trả về True.
Xem ví dụ dưới đây để hiểu rõ hơn:
Ví dụ
def solve(number):
if number == 0:
return False
while number > 0:
if (number & 1) == 0:
return False
number = number >> 1
return True
n = 255
print(solve(n))
Đầu vào
255
Đầu ra
True