মান লিজিয়ে আমাদের দুটি সংখ্যা x এবং y আছে। আমাদের যাচাই করতে হবে এই দুটি সংখ্যার মধ্যে কোন একটি অন্যটির ১-এর কমপ্লিমেন্ট (1's complement) কিনা। আমরা সবাই জানি একটি বাইনারি সংখ্যার ১-এর কমপ্লিমেন্ট হল সকল বিট ০ থেকে ১ বা ১ থেকে ০-এ ফ্লিপ করা।
যেমন, ইনপুট যদি x = 9, y = 6 হয়, তবে আউটপুট হবে True কারণ বাইনারি রিপ্রেজেন্টেশন হল x = 1001 এবং y = 0110 যা একে অপরের কমপ্লিমেন্ট।
সমাধানের ধাপসমূহ
z = x XOR y- যদি
z-এর সব বিট সেট থাকে তবেtrueরিটার্ন করুন, অন্যথায়false
উদাহরণ
বेहतर বোঝার জন্য নিচের বাস্তবায়নটি দেখুন:
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