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

ตรวจสอบว่าตัวเลขหนึ่งเป็น One's Complement ของอีกตัวหนึ่งหรือไม่ด้วย Python


สมมติมีตัวเลข x และ y ต้องตรวจสอบว่าตัวหนึ่งเป็น 1's Complement ของอีกตัวหรือไม่ (1's Complement คือพลิกบิต 0->1, 1->0)

เช่น Input x = 9, y = 6 Output True เพราะ 9 = 1001, 6 = 0110 เป็น Complement กัน

ขั้นตอนแก้:

  • z = x XOR y
  • Return True ถ้าบิตใน z เป็น 1 ทั้งหมด (z+1) & z == 0

ตัวอย่างโค้ด

def all_one(n):
    if n == 0:
        return False
    if ((n + 1) & n) == 0:
        return True
    return False

def solve(x, y):
    return all_one(x ^ y)

x = 9
y = 6
print(solve(x, y))

Input

9, 6

Output

True