สมมติมีตัวเลข x และ n ต้องตรวจสอบว่า x หารด้วย 2^n ลงตัวหรือไม่ โดยห้ามใช้ Arithmetic Operators
เช่น Input x = 32, n = 5 Output True เพราะ 32 = 2^5
ขั้นตอนแก้:
- ถ้า x AND (2^n - 1) == 0 Return True
- Return False
ตัวอย่างโค้ด
def solve(x, n):
if (x & ((1 << n) - 1)) == 0:
return True
return False
x = 32
n = 5
print(solve(x, n))
Input
32, 5
Output
True