Computer >> Máy Tính >  >> Lập trình >> Python

Kiểm tra xem một trong các số có phải là phần bù của số này với số kia trong Python hay không

Giả sử chúng ta có hai số x và y. Chúng ta phải kiểm tra xem một trong hai số này có phải là phần bù của 1 của số kia hay không. Tất cả chúng ta đều biết phần bù 1 của một số nhị phân đang lật tất cả các bit từ 0 thành 1 hoặc 1 thành 0.

Vì vậy, nếu đầu vào là x =9, y =6, thì đầu ra sẽ là True vì các biểu diễn nhị phân là x =1001 và y =0110 là phần bù của nhau.

Để 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
  • trả về true khi tất cả các bit trong z được đặt, ngược lại là false

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

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))

Đầu vào

9, 6

Đầu ra

True