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