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

সি++-এ একবার স্ব্যাপ করে সর্ববৃহৎ সংখ্যা বের করা

একটি সংখ্যা দেওয়া থাকলে, সর্বোচ্চ একবার দুটি অঙ্ক স্ব্যাপ করে সম্ভাব্য সর্ববৃহৎ সংখ্যা বের করতে হবে।

উদাহরণ

ইনপুট: 678 → আউটপুট: 876

অ্যালগরিদম

  • স্ট্রিং-এ রূপান্তর করুন।
  • ডান থেকে বামে স্ক্যান করে সর্বোচ্চ অঙ্ক এবং তার ইনডেক্স ট্র্যাক করুন।
  • যদি বর্তমান অঙ্ক সর্বোচ্চ চেয়ে ছোট হয়, সেটি এবং সর্বোচ্চ অঙ্কের ইনডেক্স সংরক্ষণ করুন।
  • শেষে সেই দুটি স্ব্যাপ করুন।

সি++ ইমপ্লিমেন্টেশন

#include <bits/stdc++.h>
using namespace std;

int getLargestNumber(int n) {
    string s = to_string(n);
    int maxDigit = -1, maxIdx = -1, left = -1, right = -1;
    for (int i = s.size() - 1; i >= 0; i--) {
        if (s[i] > maxDigit) { maxDigit = s[i]; maxIdx = i; continue; }
        if (s[i] < maxDigit) { left = i; right = maxIdx; }
    }
    if (left == -1) return n;
    swap(s[left], s[right]);
    return stoi(s);
}

int main() {
    int n = 678;
    cout << getLargestNumber(n) << endl; // 876
    return 0;
}

আউটপুট

876
  1. দেওয়া অঙ্কগুলো দিয়ে গঠিত সর্বোচ্চ সংখ্যা খুঁজে বের করা C++-তে

  2. C++ ব্যবহার করে মেরসেন প্রাইম সংখ্যা বের করা

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

  4. C++ প্রোগ্রাম: ফুল প্রাইম (Full Prime) চেক করা