Giả sử chúng ta có hai số x và y. Chúng tôi phải kiểm tra xem hai số này có khác nhau ở vị trí một bit hay không.
Vì vậy, nếu đầu vào giống như x =25 y =17, thì đầu ra sẽ là True vì x =11001 trong hệ nhị phân và y =10001. Chỉ khác vị trí một bit.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- z =x XOR y
- nếu số bit đặt trong z là 1, thì
- trả về True
- trả về Sai
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
Mã mẫu
def bit_count(n): count = 0 while n: count += n & 1 n >>= 1 return count def solve(x, y): return bit_count(x ^ y) == 1 x = 25 y = 17 print(solve(x, y))
Đầu vào
25,17
Đầu ra
True