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 और fact हैं। हमें n की सबसे बड़ी घात ढूंढनी है, जो fact! (fact का फैक्टोरियल) को विभाजित करती है। इसलिए यदि fact = 5, और n = 2, तो आउटपुट 3 होगा। तो 5! = 120, और यह 2^3 = 8 से विभाज्य है। यहां हम लेगेंड्रे के सूत्र का उपयोग करेंगे। यह एक अभाज्य संख्या की सबसे बड़ी घ

  1. - C++ में अधिकतम उत्पाद वाले चौगुनी (Quadruples) की संख्या ज्ञात करें

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

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

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