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

অ্যারে থেকে দুটি সংখ্যা বানিয়ে ন্যূনতম যোগফল (C++)

বিবরণ

০ থেকে ৯ পর্যন্ত অঙ্কयुक्त একটি অ্যারে দেওয়া আছে। অ্যারেতে থাকা সব অঙ্ক ব্যবহার করে দুটি সংখ্যা বানাতে হবে যাতে তাদের যোগফল ন্যূনতম হয়। উদাহরণ: {7,5,1,3,2,4} থেকে ১৩৫ এবং ২৪৭ বানিয়ে যোগফল ৩৮২।

অ্যালগরিদম

  • অ্যারেটি আরোহী ক্রমে সর্ট করুন।
  • সর্ট করা অ্যারেতে অল্টারনেটিভ আঁকি (ইভেন ও অড্ড ইনডেক্স) নিয়ে দুটি সংখ্যা তৈরি করুন।

উদাহরণ

#include <bits/stdc++.h>
using namespace std;

int getMinSum(int *arr, int n) {
    sort(arr, arr + n);
    int a = 0, b = 0;
    for (int i = 0; i < n; ++i) {
        if (i % 2 == 0) a = a * 10 + arr[i];
        else b = b * 10 + arr[i];
    }
    return a + b;
}

int main() {
    int arr[] = {7, 5, 1, 3, 2, 4};
    int n = sizeof(arr) / sizeof(arr[0]);
    cout << "Minimum sum = " << getMinSum(arr, n) << endl;
    return 0;
}

আউটপুট

Minimum sum = 382
  1. অ্যারে গুণফলের শেষ k ডিজিট বের করা (C++)

  2. অ্যারেতে দুটি সংখ্যার মধ্যকার ন্যূনতম দূরত্ব বের করা C++-তে

  3. C++-এ সংখ্যা গুলোকে তাদের ডিজিট সমষ্টি অনুযায়ী সর্ট করা

  4. C++-এ সম অ্যারে পাজল (Sum Array Puzzle) সমাধান