একটি পূর্ণসংখ্যা অ্যারে দেওয়া আছে। বিটওয়াইজ XOR অপারেশন করার পর ফলাফল বিজোড় (odd) হওয়া যোড়াগুলোর সংখ্যা গণনা করুন।
মূল সিদ্ধান্ত
XOR ফলাফল বিজোড় হলে একটি অপারেন্ড জোড় এবং অন্যটি বিজোড় হতে হবে।
সুতরাং: উত্তর = (জোড়ের সংখ্যা) × (বিজোড়ের সংখ্যা)
C++ বাস্তবায়ন
#include
using namespace std;
int XOR_Odd(int arr[], int size) {
int even = 0;
for (int i = 0; i < size; i++)
if (arr[i] % 2 == 0) even++;
int odd = size - even;
return even * odd;
}
int main() {
int arr[] = {6, 1, 3, 4, 8, 9};
int size = sizeof(arr) / sizeof(arr[0]);
cout << "Odd XOR pairs: " << XOR_Odd(arr, size);
return 0;
}
উদাহরণ
অ্যারে: [6, 1, 3, 4, 8, 9]
জোড়: 6, 4, 8 (৩টি) | বিজোড়: 1, 3, 9 (৩টি)
আউটপুট: 3 × 3 = 9
নোট
আর্টিকেল ১৭১ ও ১৭৩ একই সমস্যা - শুধু টাইটেল ভিন্ন।