কম্পিউটার

C++-এ সর্বাধিক 2টি অনন্য সংখ্যা সহ N-এর চেয়ে কম সমস্ত সংখ্যা প্রিন্ট করুন


এই সমস্যায়, আমাদের একটি পূর্ণসংখ্যা N দেওয়া হয়েছে এবং আমরা সর্বাধিক 2টি অনন্য অঙ্কের সাথে N-এর চেয়ে কম সমস্ত সংখ্যা প্রিন্ট করেছি অর্থাৎ সংখ্যাটি তৈরি করতে সর্বাধিক 2টি ভিন্ন সংখ্যা ব্যবহার করা যেতে পারে .

সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক -

Input: N = 17
Output: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

এই সমস্যাটি সমাধান করার জন্য, আমরা এমন সমস্ত সংখ্যা তৈরি করব যার শুধুমাত্র দুটি অনন্য সংখ্যা রয়েছে। আমাদের সংখ্যা তৈরি করার প্রক্রিয়া 0 থেকে শুরু হয় এবং শেষ হয় যখন আমাদের সংখ্যা N এর সমান বা তার বেশি হয়। দুটি অনন্য বাছাইয়ের জন্য, num*10+i এবং num*10+j ব্যবহার করে পুনরাবৃত্তিমূলকভাবে সংখ্যা তৈরি করুন। . এই প্রক্রিয়ায় কিছু সদৃশ নম্বর উঠতে পারে। সুতরাং, আমরা সেট ব্যবহার করতে পারি এটি এড়াতে সংখ্যা সংরক্ষণ করুন।

উদাহরণ

এই প্রোগ্রামটি সমস্যা সমাধানের জন্য আমাদের পদ্ধতির বাস্তবায়ন দেখায়

#include <bits/stdc++.h>
using namespace std;
set<int> numbers;
void generateNumbers(int n, int num, int i, int j){
   if (num > 0 && num < n)
      numbers.insert(num);
   if (num >= n)
      return;
   if (num*10+i > num)
      generateNumbers(n, num*10+i, i, j);
   generateNumbers(n, num*10+j, i, j);
}
void printUniqueBitNumber(int n){
   for (int i = 0; i <= 9; i++)
      for (int j = i + 1; j <= 9; j++)
         generateNumbers(n, 0, i, j);
   cout<<"The numbers are generated are : ";
   while (!numbers.empty()) {
      cout<<*numbers.begin()<<" ";
      numbers.erase(numbers.begin());
   }
}
int main(){
   int n = 17;
   printUniqueBitNumber(n);
   return 0;
}

আউটপুট

The numbers are generated are : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

  1. C++ এ একটি মিন হিপে x মানের চেয়ে কম সব নোড প্রিন্ট করুন

  2. C++ এ N এর থেকে কম বা সমান সংখ্যার মধ্যে সংখ্যার সর্বোচ্চ গুণফল বের করুন

  3. C++ এ Y এর চেয়ে কম সংখ্যা সহ সেটের ন্যূনতম সংখ্যা

  4. C++ এ n এর থেকে কম বা সমান সমস্ত ফ্যাক্টরিয়াল সংখ্যা খুঁজুন