Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ตรวจสอบว่า n หารด้วยกำลัง 2 ลงตัวหรือไม่โดยไม่ต้องใช้ตัวดำเนินการเลขคณิตใน Python


สมมติว่าเรามีตัวเลข 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