কম্পিউটার

C++ এ একটি প্রদত্ত সংখ্যার সংখ্যা ব্যবহার করে তৈরি করা যেতে পারে এমন সর্বাধিক সংখ্যা খুঁজুন


ধরুন আমাদের n সংখ্যার সংখ্যা আছে। সেই সংখ্যার সমস্ত অঙ্ক ব্যবহার করে আমাদের সর্বাধিক সংখ্যাটি খুঁজে বের করতে হবে। সুতরাং সংখ্যাটি যদি বলা হয় 339625, তাহলে সর্বাধিক সংখ্যা 965332 হতে পারে।

সমস্যা থেকে, আমরা দেখতে পাচ্ছি যে আমরা সহজেই সংখ্যাগুলিকে অ-ক্রমবর্ধমান ক্রমে সাজাতে পারি, তারপর সেগুলি প্রিন্ট করতে পারি। তবে আমরা আরও কার্যকর উপায় ব্যবহার করে এটি সমাধান করতে পারি। আমরা প্রতিটি অঙ্কের ফ্রিকোয়েন্সি সংরক্ষণ করতে 10 আকারের একটি অ্যারে তৈরি করতে পারি, তারপর সেই অনুযায়ী 9 থেকে 0 পর্যন্ত সংখ্যাগুলি প্রিন্ট করতে পারি।

উদাহরণ

#include <iostream>
#include <string>
using namespace std;
int maxNumFromNum(int num) {
   int freq[10] = {0};
   string str = to_string(num);
   for (int i=0; i<str.length(); i++)
   freq[str[i]-'0']++;
   int res = 0, mul = 1;
   for (int i = 0; i <= 9; i++) {
      while (freq[i] > 0) {
         res = res + (i * mul);
         freq[i]--;
         mul = mul * 10;
      }
   }
   return res;
}
int main() {
   int num = 339625;
   cout << "Maximum number: " << maxNumFromNum(num);
}

আউটপুট

Maximum number: 965332

  1. সর্বাধিক সংখ্যা যা C++ এ N সেগমেন্ট ব্যবহার করে সেভেন সেগমেন্ট ডিসপ্লেতে প্রদর্শিত হতে পারে

  2. C++ ব্যবহার করে একটি অ্যারেতে জোড়ার সংখ্যা খুঁজুন যাতে তাদের XOR 0 হয়।

  3. C++ ব্যবহার করে x-এর যোগফল এবং এর অঙ্কগুলো n-এর সমান হয় এমন একটি সংখ্যা খুঁজুন।

  4. x এর সমষ্টি এবং এর সংখ্যা C++ এ দেওয়া n-এর সমান