Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ में इसके कुछ अंकों को B के अंकों से बदलकर A के मान को अधिकतम करें


कार्य संख्या A के मान को अधिकतम करने के लिए इसके कुछ अंकों को किसी अन्य संख्या B में मौजूद अंकों के साथ प्रतिस्थापित करना है। यदि A के मान को अधिकतम नहीं किया जा सकता है तो कोई अंक नहीं बदला जाएगा।

नोट − B से एक अंक का उपयोग केवल एक बार किया जा सकता है।

आइए अब एक उदाहरण का उपयोग करके समझते हैं कि हमें क्या करना है -

इनपुट

A = “1221”
B = “1211”

आउटपुट

Maximum value of A possible 2221

स्पष्टीकरण - हम यहां बी में से 2 का चयन करते हैं और इसे ए के पहले 1 के साथ बदलते हैं। यहां यह एकमात्र विकल्प है क्योंकि ए के किसी अन्य अंक को 2 या 1 के साथ बदलने से इसका मूल्य नहीं बढ़ेगा।

इनपुट

A = “1002”
B = “3200”

आउटपुट

Maximum value of A possible 3202

निम्नलिखित कार्यक्रम में उपयोग किया गया दृष्टिकोण इस प्रकार है

  • A में प्रत्येक अंक को B के अंक से बदल दिया जाएगा यदि यह 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++ में किसी सरणी की माध्यिका को अधिकतम करें

    समस्या कथन N तत्वों की एक सरणी arr[] और एक पूर्णांक K जहां K

  1. C++ में बाइनरी सर्च ट्री में न्यूनतम मान वाला नोड खोजें

    मान लीजिए कि हमारे पास एक बाइनरी सर्च ट्री है। हमें बाइनरी सर्च ट्री में न्यूनतम तत्व खोजना है। तो अगर बीएसटी नीचे जैसा है - न्यूनतम तत्व 1 होगा। जैसा कि हम जानते हैं कि लेफ्ट सबट्री में हमेशा छोटे तत्व होते हैं। इसलिए यदि हम बाएं सबट्री को बार-बार पार करते हैं जब तक कि बाईं ओर शून्य न हो, हम सब

  1. जाँच करें कि क्या दी गई संख्या C++ में अपने अंकों के भाज्य के योग को विभाजित करती है

    मान लीजिए, हमारे पास एक पूर्णांक है, हमें यह पता लगाना है कि क्या संख्या अपने अंकों के भाज्य के योग को विभाजित करती है। मान लीजिए एक संख्या 19 है, अंकों के भाज्य का योग है (1! + 9!) =362881, यह 19 से विभाज्य है। इसे हल करने के लिए, हम संख्या लेंगे, फिर प्रत्येक अंक के फैक्टोरियल की गणना करेंगे और य