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

সি++-এ বিটওয়াইজ OR দেওয়া সংখ্যা n হওয়া সর্ববৃহৎ সেট

একটি সংখ্যা n দেওয়া থাকলে, সবচেয়ে বড় সেট বের করতে হবে যাতে সেটের সব উপাদানের বিটওয়াইজ OR = n হয়।

উদাহরণ

ইনপুট: n = 7 (বাইনারি: 111)

আউটপুট: 0 1 2 3 4 5 6 7 (সব সংখ্যার OR = 7)

অ্যালগরিদম

  • ০ থেকে n পর্যন্ত লুপ চালান।
  • যদি (i | n) == n হয়, তবে i সেটে রাখুন।
  • কারণ i-র সেট বিটগুলো n-র সেট বিটের সাবসেট হলে OR = n হবে।

সি++ ইমপ্লিমেন্টেশন

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

void printBitwiseOrSet(int n) {
    vector v;
    for (int i = 0; i <= n; i++) {
        if ((i | n) == n) v.push_back(i);
    }
    for (int x : v) cout << x << ' ';
    cout << endl;
}

int main() {
    int n = 7;
    printBitwiseOrSet(n); // 0 1 2 3 4 5 6 7
    return 0;
}

আউটপুট

0 1 2 3 4 5 6 7
  1. C++-এ ম্যানহ্যাটান দূরত্ব সমান পথ সংখ্যা গণনা

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

  3. C++-এ বিটওয়াইজ OR যেন k হয় এমন ম্যাক্সিমাম লেন্থের সাবসেট

  4. C++-এ LCM যা গুণফলের সমান হয় এমন সর্বোচ্চ দৈর্ঘ্যের সাবঅ্যারে