কম্পিউটার

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


ধরুন আমাদের কাছে অঙ্কের একটি অ্যারে আছে। অ্যারের সমস্ত সংখ্যা ব্যবহার করে আমাদের সর্বাধিক সংখ্যাটি খুঁজে বের করতে হবে। সুতরাং যদি অ্যারেটি [3, 3, 9, 6, 2, 5] এর মত হয়, তাহলে সর্বাধিক সংখ্যা 965332 হতে পারে।

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

উদাহরণ

#include <iostream>
#include <string>
using namespace std;
int maxNumFromNum(int arr[], int n) {
   int freq[10] = {0};
   for (int i=0; i<n; i++)
   freq[arr[i]]++;
   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 digits[] = {3, 3, 9, 6, 2, 5};
   int n = sizeof(digits)/sizeof(digits[0]);
   cout << "Maximum number: " << maxNumFromNum(digits, n);
}

আউটপুট

Maximum number: 965332

  1. একটি সংখ্যায় সংখ্যার গণনা খুঁজুন যা সংখ্যাটিকে C++ এ ভাগ করে

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

  3. C++ এ প্রদত্ত পার্থক্যের সাথে একটি জোড়া খুঁজুন

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