এই টিউটোরিয়ালে, আমরা একটি প্রোগ্রাম লিখতে যাচ্ছি যেটি একক অদলবদল করে সবচেয়ে বড় সংখ্যা খুঁজে বের করে।
আসুন সমস্যা সমাধানের পদক্ষেপগুলি দেখি৷
৷- সংখ্যা 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
উপসংহার
টিউটোরিয়ালে আপনার কোন প্রশ্ন থাকলে মন্তব্য বিভাগে উল্লেখ করুন।