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

ตรวจสอบว่าตัวเลขตัวใดตัวหนึ่งเป็นส่วนเสริมของตัวอื่นใน Python


สมมติว่าเรามีตัวเลข x และ y สองตัว เราต้องตรวจสอบว่าหนึ่งในสองจำนวนนี้เป็นส่วนประกอบเสริมของ 1 ของอีกจำนวนหนึ่งหรือไม่ เราทุกคนรู้ดีว่าเลขฐานสองของเลข 1 กำลังพลิกบิตทั้งหมดจาก 0 เป็น 1 หรือ 1 เป็น 0

ดังนั้น หากอินพุตเท่ากับ x =9, y =6 เอาต์พุตจะเป็น True เนื่องจากการแสดงไบนารีคือ x =1001 และ y =0110 ซึ่งเป็นส่วนเติมเต็มของกันและกัน

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • z =x XOR y
  • คืนค่า จริง เมื่อบิตทั้งหมดใน z ถูกตั้งค่า มิฉะนั้น จะเป็นเท็จ

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

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

อินพุต

9, 6

ผลลัพธ์

True