इस ट्यूटोरियल में, हम एक प्रोग्राम लिखने जा रहे हैं जो सिंगल स्वैप के साथ सबसे बड़ी संख्या ढूंढता है।
आइए समस्या को हल करने के लिए चरणों को देखें।
- संख्या n प्रारंभ करें।
- पूर्णांक को स्ट्रिंग में बदलें।
- एक लूप लिखें जो स्ट्रिंग के अंत से पुनरावृत्त हो।
- अधिकतम अंक और अनुक्रमणिका खोजें।
- यदि वर्तमान अंक अधिकतम अंक से कम है, तो प्रारंभ अनुक्रमणिका को वर्तमान अनुक्रमणिका और अंत अनुक्रमणिका को अधिकतम अंक अनुक्रमणिका के साथ अद्यतन करें।
- यदि प्रारंभ सूचकांक -1 है, तो n लौटाएं।
- अन्यथा प्रारंभ और अंत अनुक्रमणिका में अंकों की अदला-बदली करें।
- रूपांतरित करके पूर्णांक लौटाएं।
उदाहरण
आइए कोड देखें।
#include <bits/stdc++.h>
using namespace std;
int getLargestNumber(int n) {
int maxDigit = -1;
int maxDigitIndex = -1;
int startIndex = -1;
int endIndex = -1;
string nInStr = to_string(n);
for (int i = nInStr.size() - 1; i >= 0; i--) {
if (nInStr[i] > maxDigit) {
maxDigit = nInStr[i];
maxDigitIndex = i;
continue;
}
if (nInStr[i] < maxDigit) {
startIndex = i;
endIndex = maxDigitIndex;
}
}
if (startIndex == -1) {
return n;
}
swap(nInStr[startIndex], nInStr[endIndex]);
return stoi(nInStr);
}
int main() {
int n = 678;
cout << getLargestNumber(n) << endl;
return 0;
} आउटपुट
यदि आप उपरोक्त कोड चलाते हैं, तो आपको निम्न परिणाम प्राप्त होंगे।
876
निष्कर्ष
यदि ट्यूटोरियल में आपके कोई प्रश्न हैं, तो उनका टिप्पणी अनुभाग में उल्लेख करें।