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

C++-এ অড্ড সেট বিট থাকা ইন্টিজার সংখ্যা গণনা


একটি সংখ্যা n দেওয়া আছে। ১ থেকে n পর্যন্ত কতগুলো ইন্টিজারের বাইনারি রিপ্রেজেন্টেশনে অড্ড সংখ্যক সেট বিট (১) আছে, তা বের করতে হবে।

উদাহরণ: n=10 হলে আউটপুট ৫। (১,২,৩,৪,৫,৬,৭,৮,৯,১০-র মধ্যে ৫টির বাইনারি-তে অড্ড সংখ্যক ১ আছে)।

অ্যালগরিদম

  • getSetBitsCount(n): while(n) { if(n%2==1) count++; n/=2; }
  • getOddSetBitsIntegerCount(n): ১ থেকে n পর্যন্ত লুপ, সেট বিট অড্ড হলে count++

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

#include <bits/stdc++.h> using namespace std; int getSetBitsCount(int n) {    int count = 0;    while (n) {       if (n % 2 == 1) count += 1;       n /= 2;    }    return count; } int getOddSetBitsIntegerCount(int n) {    int count = 0;    for (int i = 1; i <= n; i++) {       if (getSetBitsCount(i) % 2 == 1) count += 1;    }    return count; } int main() {    int n = 10;    cout << getOddSetBitsIntegerCount(n) << endl;    return 0; }

আউটপুট

5

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

  2. C++-এ একই সংখ্যক সেট বিট 가진 সর্বোচ্চ সংখ্যক কন্টiguous অ্যারে উপাদান

  3. C++-এ সেট বিট কাউন্ট অনুযায়ী অ্যারে সর্ট করা

  4. C++-এ k সেট বিটস সহ একটি নম্বরকে ম্যাক্সিমাইজ করতে ন্যূনতম ফ্লিপ বের করা