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

C++-এ একটি দিয়ে দেয়া সংখ্যার অঙ্ক ব্যবহার করে সর্বোচ্চ সংখ্যা নির্ণয়


n অঙ্কের একটি সংখ্যা দেওয়া আছে। সেই সংখ্যার সব অঙ্ক ব্যবহার করে সর্বোচ্চ সংখ্যা খুঁজে বের করতে হবে। উদাহরণস্বরূপ, যদি সংখ্যা ৩৩৯৬২৫ হয়, তবে সর্বোচ্চ সংখ্যা হবে ৯৬৫৩৩২।

সমস্যাটি থেকে দেখা যায়, আমরা সহজে অঙ্কগুলোকে অনিবর্ধমান ক্রমে (non-increasing order) সর্ট করে প্রিন্ট করতে পারি। কিন্তু আরও কার্যকর পদ্ধতিতে এটি সমাধান করা যায়। আমরা ১০ আকারের একটি অ্যারে তৈরি করে প্রতিটি অঙ্কের ফ্রিকোয়েন্সি (আবৃত্তি) সংরক্ষণ করব, তারপর ৯ থেকে ০ পর্যন্ত সংখ্যাগুলো প্রিন্ট করব।

উদাহরণ

#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 ০ হয় এমন জোড়ার সংখ্যা বের করা

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

  4. দেওয়া সংখ্যা n-এর জন্য x + x-এর অঙ্কের যোগফল = n এমন x খুঁজে বের করা C++-এ