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

C++-এ বিটওয়াইজ AND অড পেয়ার: বিজোড় ফলাফল वाले যোড়া গণনা

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

মূল লজিক

AND ফলাফল বিজোড় হলে দুটি অপারেন্ডই বিজোড় হতে হবে (LSB=1)।

সুতরাং: উত্তর = C(বিজোড়_কাউন্ট, 2) = বিজোড়_কাউন্ট × (বিজোড়_কাউন্ট - 1) / 2

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


#include 
using namespace std;

int count_pair(int arr[], int size) {
    int odd = 0;
    for (int i = 0; i < size; i++)
        if (arr[i] % 2 == 1) odd++;
    return odd * (odd - 1) / 2;
}

int main() {
    int arr[] = {2, 5, 1, 8, 9, 2, 7};
    int size = sizeof(arr) / sizeof(arr[0]);
    cout << "Odd AND pairs: " << count_pair(arr, size);
    return 0;
}

উদাহরণ

অ্যারে: [2, 5, 1, 8, 9, 2, 7]

বিজোড়: 5, 1, 9, 7 (৪টি)

যোড়া: C(4,2) = 6টি

সময় জটিলতা

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

  1. সি++-এ জোড় ও বিজোড় যোগফল বালা অর্ডার্ড পেয়ার গণনা

  2. সি++-এ জোড় ও বিজোড় গুণফল বালা অর্ডার্ড পেয়ার গণনা

  3. C++-এ অ্যারেতে জোড় ও বিজোড় উপাদান গণনা (Count Even and Odd Elements in Array)

  4. C++-এ একটি সংখ্যা N-এর বিটওয়াইজ AND সাবসেট প্রিন্ট করুন