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

C++-এ সেট বিট K সমান থাকা অ্যারেের সব উপাদানের XOR


এই সমস্যাতে, আমাদের n সংখ্যক উপাদান সহ একটি অ্যারে এবং একটি পূর্ণসংখ্যা k দেওয়া আছে। আমাদের কাজ হলো অ্যারেতে সেই সব উপাদানের XOR বের করা যাদের সেট বিটের সংখ্যা k-এর সমান।

উদাহরণ

মনে করুন, ইনপুট:

array = {2, 12, 44, 103, 17} , K = 3

আউটপুট:

44

সমাধান পেতে, আমরা অ্যারের প্রতিটি উপাদানের সেট বিট গণনা করব এবং তা k-এর সাথে তুলনা করব। যদি সেট বিটের সংখ্যা k-এর সমান হয়, তবে সেটি একটি ভেক্টরে সংরক্ষণ করব এবং পরে সেই ভেক্টরের সব উপাদানের XOR বের করব।

সেট বিট গণনার জন্য C++-এর বিল্ট-ইন ফাংশন __builtin_popcount() ব্যবহার করা হয়।

প্রোগ্রাম উদাহরণ

#include <bits/stdc++.h> 
using namespace std; 

int XorKSetBits(int arr[], int n, int k) {
    vector<int> kBitElements;
    for (int i = 0; i < n; i++) {
        if (__builtin_popcount(arr[i]) == k) {
            kBitElements.push_back(arr[i]);
        }
    }
    int result = kBitElements[0];
    for (int i = 1; i < kBitElements.size(); i++)
        result ^= kBitElements[i];
    return result;
}

int main() {
    int arr[] = { 2, 12, 44, 103, 17 };
    int n = sizeof(arr) / sizeof(arr[0]);
    int k = 3;
    cout << "XOR of all element of the array with " << k << " set bits is : " << XorKSetBits(arr, n, k);
    return 0;
}

আউটপুট

XOR of all element of the array with 3 set bits is : 44

  1. অ্যারে সব এলিমেন্ট সমান করার ন্যূনতম অপারেশন C++-তে (ডুপ্লিকেট)

  2. সি++ প্রোগ্রাম: ক্রমাগত উপাদানদের XOR দিয়ে অ্যারে উপাদানগুলো খুঁজে বের করা

  3. C++-এ অ্যারের সব উপাদানে XOR অপারেশন প্রয়োগ করে অ্যারে যোগফল ন্যূনীকরণ

  4. C++-এ অ্যারেতে সব জোড়া সन्नিহিত উপাদানগুলোর tuyệt দায়ক পার্থক্য