কম্পিউটার

C++-এ সর্বাধিক K অদলবদল করে সম্ভাব্য সর্বাধিক সংখ্যা খুঁজুন


এই সমস্যায়, আমাদের n এবং k দুটি পূর্ণসংখ্যার মান দেওয়া হয়েছে। আমাদের কাজ হল সর্বোচ্চ K অদলবদল করে সম্ভাব্য সর্বাধিক সংখ্যা খুঁজে বের করা।

সমস্যা বর্ণনা: এখানে, আমাদের সংখ্যাটি গণনা করতে হবে যা সর্বাধিক এবং সংখ্যাটির সর্বাধিক k সংখ্যা অদলবদল করার পরে তৈরি করা হয়৷

সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক,

ইনপুট: n =538 k =1

আউটপুট: 835

ব্যাখ্যা:

আমরা 8 এবং 5 অদলবদল করব।

সমাধান পদ্ধতি

সমস্যা সমাধানের জন্য, আমাদের কে সংখ্যার সংখ্যাগুলিকে বার বার অদলবদল করতে হবে এবং সংখ্যাটি সর্বাধিক কিনা তা পরীক্ষা করতে হবে।

আমাদের সংখ্যার সর্বাধিক সংখ্যা খুঁজে বের করতে হবে এবং তারপর প্রথম সূচকে উপাদানটি অদলবদল করতে হবে। এবং তাই সংখ্যার প্রথম k সূচকের জন্য।

আমাদের সমাধানের কাজ চিত্রিত করার জন্য প্রোগ্রাম

উদাহরণ

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

void calcMaxNumAfterSwap(string number, int k, string& maxString, int n){
   
   if (k == 0)
      return;
   for (int i = 0; i < n - 1; i++) {
      for (int j = i + 1; j < n; j++) {
         if (number[i] < number[j]) {
            swap(number[i], number[j]);
            if (number.compare(maxString) > 0)
               maxString = number;
            calcMaxNumAfterSwap(number, k - 1, maxString, n);
            swap(number[i], number[j]);
         }
      }
   }
}

int main(){
   
   string str = "15263";
   int k = 3;
   int size = str.length();
   string maxString = str;
   calcMaxNumAfterSwap(str, k, maxString, size);
   cout<<"The maximum number created after "<<k<<" swaps is "<<maxString;

   return 0;
}

আউটপুট

The maximum number created after 3 swaps is 65321

  1. C++ এ একটি সংখ্যার যোগফল এবং এর সর্বোচ্চ মৌলিক গুণনীয়ক খুঁজুন

  2. C++ এ একটি ফ্যাক্টরিয়ালকে ভাগ করে এমন একটি সংখ্যার সর্বোচ্চ শক্তি খুঁজুন

  3. C++ এ সর্বাধিক পণ্যের চতুর্গুণ সংখ্যা খুঁজুন

  4. C++ প্রোগ্রাম এজ ডিসজয়েন্ট পাথের সর্বাধিক সংখ্যক সন্ধান করতে