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

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


कार्य संख्या A के मान को अधिकतम करना है, इसके कुछ अंकों को दूसरी संख्या 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 के अंक से बदलें और A पर पॉइंटर बढ़ाएं और B पर पॉइंटर घटाएं।

उदाहरण

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

// स्ट्रिंग के अधिकतम मान को रिटर्न करने का फंक्शन
string valueup(string str1, string str2) {
    // अंकों को आरोही क्रम में सॉर्ट करें
    sort(str2.begin(), str2.end());
    int len1 = str1.length();
    int len2 = str2.length();
    int j = len2 - 1;
    
    for (int i = 0; i < len1; i++) {
        // यदि B के सभी अंक उपयोग हो गए
        if (j < 0)
            break;
        if (str2[j] > str1[i]) {
            str1[i] = str2[j];
            j--; // एक बार अंक उपयोग हो गया
        }
    }
    return str1;
}

// ड्राइवर कोड
int main() {
    string a = "1204";
    string b = "4521";
    cout << valueup(a, b);
    return 0;
}

आउटपुट

5424

  1. - C++ में ऐरे की माध्यिका को अधिकतम करना

    समस्या कथन N तत्वों का एक ऐरे arr[] और एक पूर्णांक K दिया गया है जहां K < N। कार्य उसी ऐरे में K पूर्णांक तत्व डालना है ताकि परिणामी ऐरे की माध्यिका अधिकतम हो। यदि इनपुट ऐरे है {1, 3, 2, 5} और k = 3 तो: सॉर्टेड ऐरे बन जाता है {1, 2, 3, 5} 5 से बड़े 3 तत्व डालें। इस ऑपरेशन के बाद ऐरे बन जाता है {1

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

    मान लीजिए हमारे पास एक बाइनरी सर्च ट्री है। हमें बाइनरी सर्च ट्री में न्यूनतम तत्व ढूंढना है। इसलिए यदि BST नीचे की तरह है: न्यूनतम तत्व 1 होगा। जैसा कि हम जानते हैं कि बायां उपट्री हमेशा छोटे तत्वों को धारण करता है। इसलिए यदि हम बाएं उपट्री के माध्यम से तब तक ट्रैवर्स करते हैं जब तक बायां NULL नही

  1. - C++ में जांचें कि संख्या अपने अंकों के फैक्टोरियल योग से विभाज्य है या नहीं

    समस्या विवरण एक पूर्णांक दिया गया है, जांचें कि क्या यह संख्या अपने अंकों के फैक्टोरियल के योग से विभाज्य है। उदाहरण: 19 → 1! + 9! = 1 + 362880 = 362881 → 362881 ÷ 19 = 19099 → विभाज्य उदाहरण कोड #include <iostream> using namespace std; int factorial(int n) { if (n == 1 || n == 0) retu