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

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


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

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

উদাহরণ

#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. সি++ প্রোগ্রাম: সংখ্যা বিভাজ্য করে এমন অঙ্কগুলোর গণনা (Count of Digits Dividing the Number)

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

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

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