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

n সেট বিট ও m আনসেট বিটসহ সর্বোচ্চ সংখ্যা বের করা (C++)


সমস্যা বিবরণ

দুটি পূর্ণসংখ্যা n এবং m দেওয়া আছে। আমাদের কাজ হল বাইনারি রিপ্রেজেন্টেশনে nটি সেট বিট (১) এবং mটি আনসেট বিট (০) থাকা সর্বোচ্চ সংখ্যা বের করা।

উদাহরণ

ইনপুট: n = 3, m = 1
আউটপুট: 14
ব্যাখ্যা: বাইনারি 1110 (৩টি ১, ১টি ০) = 14

সমাধানের পদ্ধতি

(n+m) বিট সেট করা সংখ্যা: (1 << (n+m)) - 1। তারপর শেষ m বিট টগল অফ করা: XOR with ((1 << m) - 1)।

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

#include <iostream>
using namespace std;

int findLargestNumber(int n, int m) {
    int maxNum = (1 << (n+m)) - 1;
    if(m==0) return maxNum;
    int toggle = (1 << m) - 1;
    return maxNum ^ toggle;
}

int main() {
    int n=5, m=2;
    cout << "সর্বোচ্চ সংখ্যা: " << findLargestNumber(n,m);
    return 0;
}

আউটপুট

সর্বোচ্চ সংখ্যা: 124
  1. C++-এ সেটে রিফ্লেক্সিভ রিলেশন সংখ্যা বের করুন

  2. n-র সन्नিকট এবং m দিয়ে বিভাজ্য সংখ্যা খুঁজে বের করা C++-তে

  3. দেওয়া অঙ্কগুলো দিয়ে গঠিত সর্বোচ্চ সংখ্যা খুঁজে বের করা C++-তে

  4. C++ প্রোগ্রাম: সংখ্যার সেট ও আনসেট বিটের সংখ্যা সমান কিনা চেক