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

ตรวจสอบว่า N หารด้วย 2^k ลงตัวหรือไม่โดยไม่ใช้ Arithmetic Operators ใน Python


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