สมมติว่าเรามีตัวเลข x และ n สองตัว เราต้องตรวจสอบว่า x หารด้วย 2^n ลงตัวหรือไม่โดยไม่ต้องใช้ตัวดำเนินการทางคณิตศาสตร์
ดังนั้น หากอินพุตเท่ากับ x =32 n =5 ผลลัพธ์จะเป็น True เป็น 32 =2^5
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- ถ้า x AND (2^n - 1) เป็น 0 แล้ว
- คืนค่า True
- คืนค่าเท็จ
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
def solve (x, n): if (x & ((1 << n) - 1)) == 0: return True return False x = 32 n = 5 print(solve(x, n))
อินพุต
32, 5
ผลลัพธ์
True