Giả sử chúng ta có một số n. Chúng ta phải kiểm tra xem đây có phải là lũy thừa của 2 hay không.
Vì vậy, nếu đầu vào là n =2048, thì đầu ra sẽ là True vì năm 2048 là 2 ^ 11.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
-
nếu n giống 0 thì
-
trả về Sai
-
-
trả về true khi (n AND (n - 1)) bằng 0, ngược lại là false
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau đây để hiểu rõ hơn
def solve(n): if n == 0: return False return (n & (n - 1)) == 0 n = 2048 print(solve(n))
Đầu vào
2048
Đầu ra
True