একটি সমস্যা সমাধান করতে হবে যেখানে একটি অ্যারে দেওয়া আছে, এবং আমাদের এমন একটি সংখ্যা বের করতে হবে যাতে দিয়ে হয়ে অ্যারেটির সাথে সেটির XOR যোগফল (XOR sum) দেওয়া সংখ্যা k-এর সমান হয়। উদাহরণ।
ইনপুট: arr[] = {1, 2, 3, 4, 5}, k = 10 আউটপুট: 11 ব্যাখ্যা: 1 ^ 2 ^ 3 ^ 4 ^ 5 ^ 11 = 10
ইনপুট: arr[] = { 12, 23, 34, 56, 78 }, k = 6 আউটপুট: 73
এই প্রোগ্রামে আমরা XOR-এর একটি প্রোপার্টি (property) ব্যবহার করব: যদি A ^ B = C হয়, তবে A ^ C = B। এটিকে এই সমস্যায় প্রয়োগ করব।
এই পদ্ধতিতে, আমরা XOR অপারেটরের উপরের প্রোপার্টি ব্যবহার করব। এই সমস্যায়, আমরা অ্যারে ট্রাভার্স করে পুরো অ্যারের XOR যোগফল বের করব, এবং তারপর সেটিকে k দিয়ে XOR করলে আমাদের উত্তর পাওয়া যাবে।
উপরোক্ত পদ্ধতির C++ কোড
#include <bits/stdc++.h> using namespace std; int main(){ int arr[] = { 1, 2, 3, 4, 5 }; // দেওয়া অ্যারে int n = sizeof(arr) / sizeof(int); // অ্যারে সাইজ int k = 10; // দেওয়া k int answer = 0; for(int i = 0; i < n; i++) // অ্যারে ট্রাভার্স XOR যোগফল বের করতে answer ^= arr[i]; answer ^= k; // k দিয়ে XOR করে উত্তর বের করা cout << answer << "\n"; // উত্তর প্রিন্ট return 0; }
11
এই পদ্ধতিতে, আমরা XOR অপারেটরের কিছু প্রোপার্টি ব্যবহার করব। আমরা সহজে অ্যারে ট্রাভার্স করে পুরো অ্যারের XOR যোগফল বের করব, তারপর সেটিকে k দিয়ে XOR করব, এবং সেই উত্তরটি প্রিন্ট করব।
এই টিউটোরিয়ালে আমরা সেই সংখ্যা বের করার সমস্যা সমাধান করেছি যাতে দেওয়া অ্যারের সাথে এর XOR যোগফল k হয়। আমরা এই সমস্যার C++ প্রোগ্রাম ও সম্পূর্ণ পদ্ধতি দেখেছি। একই প্রোগ্রাম C, Java, Python ইত্যাদি ভাষায়ও লিখা যায়। আশা করি আপনি এই টিউটোরিয়ালটি সহায়ক পাবেন।