কম্পিউটার টিউটোরিয়াল

C++-এ অড XOR পেয়ার কাউন্ট: বিজোড় XOR ফলাফল والے যোড়া

একটি পূর্ণসংখ্যা অ্যারে দেওয়া আছে। যেসব যোড়ার XOR ফলাফল বিজোড় (odd) হবে, তাদের সংখ্যা গণনা করুন।

মূল লজিক

XOR ফলাফল বিজোড় হলে একটি সংখ্যা জোড় এবং অন্যটি বিজোড় হতে হবে।

তাই, উত্তর = (জোড় সংখ্যার কাউন্ট) × (বিজোড় সংখ্যার কাউন্ট)

উদাহরণ

ইনপুট: [2, 8, 1, 5, 11]

জোড়: 2, 8 (২টি) | বিজোড়: 1, 5, 11 (৩টি)

আউটপুট: 2 × 3 = 6

C++ বাস্তবায়ন


#include 
using namespace std;

int Odd_XOR(int arr[], int size) {
    int even = 0, odd = 0;
    for (int i = 0; i < size; i++) {
        if (arr[i] % 2 == 0) even++;
        else odd++;
    }
    return even * odd;
}

int main() {
    int arr[] = {2, 6, 1, 4};
    int size = sizeof(arr) / sizeof(arr[0]);
    cout << "Odd XOR pairs: " << Odd_XOR(arr, size);
    return 0;
}

সময় জটিলতা

O(n) - একবার ট্রাভার্স। স্পেস O(1)।

XOR সত্য টেবিল পর্যালোচনা

ABA XOR B
Even (0)Even (0)Even (0)
Odd (1)Even (0)Odd (1)
Even (0)Odd (1)Odd (1)
Odd (1)Odd (1)Even (0)
  1. C++-এ K পেয়ার উইথ স্ম্যালেস্ট সমস

  2. C++-এ দেওয়া XOR সমান হয় এমন জোড়া (Pair) গণনা

  3. C++-এ পার্থক্য K হয় এমন আলাদা জোড়া গণনা (Count Distinct Pairs with Difference K)

  4. C++-এ d-ডিজিটের ধনাত্মক পূর্ণসংখ্যা যেগুলোতে ০ ডিজিট থাকে (Count d-digit Numbers with Digit 0)