কম্পিউটার

C++-এ B-এর সংখ্যা দিয়ে এর কিছু সংখ্যা প্রতিস্থাপন করে A-এর মান সর্বাধিক করুন

">

দ্রষ্টব্য − B থেকে একটি অঙ্ক শুধুমাত্র একবার ব্যবহার করা যেতে পারে।

আসুন এখন বুঝতে পারি −

একটি উদাহরণ ব্যবহার করে আমাদের কী করতে হবে

ইনপুট

A = “1221”
B = “1211”

আউটপুট

Maximum value of A possible 2221

ব্যাখ্যা − আমরা এখানে B থেকে 2 নির্বাচন করি এবং এটিকে A-এর প্রথম 1 দিয়ে প্রতিস্থাপন করি। এখানে এটিই একমাত্র পছন্দ কারণ A-এর অন্য কোনো সংখ্যাকে 2 বা 1 দিয়ে প্রতিস্থাপন করলে এর মান বাড়বে না।

ইনপুট

A = “1002”
B = “3200”

আউটপুট

Maximum value of A possible 3202

নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি

  • A-এর প্রতিটি সংখ্যা B এর থেকে কম হলে B এর একটি সংখ্যা দিয়ে প্রতিস্থাপিত হবে।

  • স্ট্রিং B-কে আরোহী ক্রমে সাজান।

  • বাম দিক থেকে A অতিক্রম করা শুরু করুন।

  • এখন ডান দিক থেকে B অতিক্রম করুন।

  • A-তে অঙ্কটি B এর সাথে প্রতিস্থাপন করুন যদি এটি ছোট হয় এবং A এ ইনক্রিমেন্ট পয়েন্টার এবং B এ হ্রাস পয়েন্টার।

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
// Function to return the maximized value of a
string valueup(string str1, string str2){
   // Sort digits in ascending order
   sort(str2.begin(), str2.end());
   int len1 = str1.length();
   int len2 = str2.length();
   int j = len2 - 1;
   for (int i = 0; i < len1; i++) {
      // If all the digits of b consumed
      if (j < 0)
         break;
      if (str2[j] > str1[i]) {
         str1[i] = str2[j];
         j--; //once digit used
      }
   }
   return str1;
}
// Driver code
int main(){
   string a = "1204";
   string b = "4521";
   cout << valueup(a, b);
   return 0;
}

আউটপুট

আমরা উপরের কোডটি চালালে আমরা নিম্নলিখিত আউটপুট পাব −

5424

  1. C++ এ arr[i]*i এর যোগফল সর্বাধিক করুন

  2. C++-এ একটি অ্যারের মধ্যম সর্বোচ্চ করুন

  3. C++ এ বাইনারি সার্চ ট্রিতে ন্যূনতম মান সহ নোড খুঁজুন

  4. একটি প্রদত্ত সংখ্যা C++ এ তার সংখ্যার ফ্যাক্টরিয়ালের যোগফলকে ভাগ করে কিনা তা পরীক্ষা করুন