Giả sử chúng ta có hai số x và n. Chúng ta phải kiểm tra xem x có chia hết cho 2 ^ n hay không mà không sử dụng toán tử số học.
Vì vậy, nếu đầu vào là x =32 n =5, thì đầu ra sẽ là True là 32 =2 ^ 5.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- nếu x AND (2 ^ n - 1) bằng 0, thì
- trả về True
- trả về Sai
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
def solve (x, n): if (x & ((1 << n) - 1)) == 0: return True return False x = 32 n = 5 print(solve(x, n))
Đầu vào
32, 5
Đầu ra
True