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

C++ में अधिकतम K स्वैप करके अधिकतम संभव संख्या ज्ञात करें

इस समस्या में, हमें दो पूर्णांक मान n और k दिए गए हैं। हमारा कार्य अधिकतम K स्वैप करके अधिकतम संभव संख्या ज्ञात करना है।

समस्या का विवरण: यहां, हमें उस संख्या की गणना करने की आवश्यकता है जो अधिकतम है और संख्या के अधिकतम k अंकों की अदला-बदली के बाद बनाई गई है।

समस्या को समझने के लिए एक उदाहरण लेते हैं,

इनपुट: n =538 k =1

आउटपुट: 835

स्पष्टीकरण:

हम 8 और 5 की अदला-बदली करेंगे।

समाधान दृष्टिकोण

समस्या को हल करने के लिए, हमें k बार संख्या के अंकों को स्वैप करना होगा और जांचना होगा कि संख्या अधिकतम है या नहीं।

हमें संख्या का अधिकतम अंक खोजने की जरूरत है और फिर पहले सूचकांक में तत्व को स्वैप करें। और इसी तरह संख्याओं के पहले 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++ में भाज्य को विभाजित करने वाली संख्या की अधिकतम घात ज्ञात कीजिए

    मान लीजिए कि हमारे पास दो संख्याएँ n और तथ्य हैं। हमें n की सबसे बड़ी घात ज्ञात करनी है, जो तथ्य को विभाजित करती है! (तथ्य का तथ्य)। तो अगर फैक्ट =5, और n =2, तो आउटपुट 3 होगा। तो 5! =120, और यह 2^3 =8 से विभाज्य है। यहां हम लीजेंड्रे के सूत्र का उपयोग करेंगे। यह प्राइम की सबसे बड़ी शक्ति पाता है,

  1. C++ में अधिकतम उत्पाद चौगुनी संख्या ज्ञात कीजिए

    मान लीजिए कि हमारे पास n तत्वों के साथ एक पूर्णांक सरणी है। हमें सरणी में चौगुनी का अधिकतम गुणनफल खोजना है। तो अगर सरणी [3, 5, 20, 6, 10] की तरह है, तो अंतिम उत्पाद 6000 है, और चौगुनी में तत्व 10, 5, 6, 20 है इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - सरणी को आरोही क्रम में क्रमबद्ध करें मान

  1. सी ++ प्रोग्राम एज डिसजॉइंट पथों की अधिकतम संख्या खोजने के लिए

    यह एक C++ प्रोग्राम है जो एज डिसजॉइंट पाथ की अधिकतम संख्या को खोजने के लिए है जिसका अर्थ है सबसे छोटा सबसेट पथ या दो कोने के बीच अधिकतम प्रवाह। एल्गोरिदम: Begin    function bfs() returns true if there is path from source s to sink t in    the residual graph which indicates additi