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