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