এই টিউটোরিয়ালে, আমরা একটি প্রোগ্রাম লিখব যা একটি সংখ্যার ডিজিটগুলোকে শুধুমাত্র একবার সোয়াপ করে সবচেয়ে বড় সম সংখ্যা বের করবে।
সমস্যা সমাধানের ধাপসমূহ
- সংখ্যাটি স্ট্রিং ফরম্যাটে ইনিশিয়ালাইজ করুন।
- প্রদত্ত সংখ্যা પર ইটারেট করুন।
- সंख্যার শেষ ডিজিটের চেয়ে ছোট বা সমান একটি সম ডিজিট খুঁজুন।
- যদি পাওয়া যায়, তবে লুপ ভাঙুন।
- যদি এমন কোনো সম ডিজিট না থাকে, তবে প্রদত্ত সংখ্যাটি রিটার্ন করুন।
- শেষ ডিজিটকে খুঁজে পাওয়া সম ডিজিটের সাথে সোয়াপ করুন।
- সংখ্যাটি রিটার্ন করুন।
উদাহরণ কোড
#include <bits/stdc++.h>
using namespace std;
string getLargestEvenNumber(string number, int n) {
int even = INT_MAX, index;
for (int i = 0; i < n - 1; i++) {
if ((number[i] - '0') % 2 == 0) {
even = (number[i] - '0');
index = i;
}
if (even <= (number[n - 1] - '0')) {
break;
}
}
if (even == INT_MAX) {
return number;
}
swap(number[index], number[n - 1]);
return number;
}
int main() {
string number = "15433";
cout << getLargestEvenNumber(number, 5) << endl;
return 0;
}
আউটপুট
উপরের কোডটি রান করলে নিচের ফলাফল পাওয়া যাবে:
15334
নिष्कর্ষ
এই টিউটোরিয়াল সম্পর্কে আপনার যেকোনো প্রশ্ন থাকলে কমেন্ট সেকশনে জানাতে পারেন।