কম্পিউটার টিউটোরিয়াল

সি++-এ একবার সোয়াপ করে সম সংখ্যা থেকে সর্বোচ্চ সম্ভব মান বের করা

এই টিউটোরিয়ালে, আমরা একটি প্রোগ্রাম লিখব যা একটি সংখ্যার ডিজিটগুলোকে শুধুমাত্র একবার সোয়াপ করে সবচেয়ে বড় সম সংখ্যা বের করবে।

সমস্যা সমাধানের ধাপসমূহ

  • সংখ্যাটি স্ট্রিং ফরম্যাটে ইনিশিয়ালাইজ করুন।
  • প্রদত্ত সংখ্যা પર ইটারেট করুন।
    • সंख্যার শেষ ডিজিটের চেয়ে ছোট বা সমান একটি সম ডিজিট খুঁজুন।
    • যদি পাওয়া যায়, তবে লুপ ভাঙুন।
  • যদি এমন কোনো সম ডিজিট না থাকে, তবে প্রদত্ত সংখ্যাটি রিটার্ন করুন।
  • শেষ ডিজিটকে খুঁজে পাওয়া সম ডিজিটের সাথে সোয়াপ করুন।
  • সংখ্যাটি রিটার্ন করুন।

উদাহরণ কোড

#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

নिष्कর্ষ

এই টিউটোরিয়াল সম্পর্কে আপনার যেকোনো প্রশ্ন থাকলে কমেন্ট সেকশনে জানাতে পারেন।

  1. C++-এ দিয়ে गये পয়েন্ট থেকে সম্ভাব্য কোয়াড্রিল্যাটারেল সংখ্যা বের করুন

  2. C++ ব্যবহার করে একটি সংখ্যার জোড় মুল ফ্যাক্টরের যোগফল বের করা

  3. C++ ব্যবহার করে একটি সংখ্যার সর্বোচ্চ প্রাইম ফ্যাক্টর বের করা

  4. C++ প্রোগ্রাম: অর্ডার-স্ট্যাটিস্টিক অ্যালগরিদম দিয়ে ith লার্জেস্ট নম্বর খুঁজে বের করা