কম্পিউটার

C++ সংখ্যার তালিকা থেকে বৃহত্তম আভিধানিক সংখ্যা তৈরি করার প্রোগ্রাম


ধরুন আমাদের কাছে সংখ্যা নামক সংখ্যার একটি তালিকা আছে, আমাদের সম্ভাব্য বৃহত্তম সংখ্যা তৈরি করার জন্য এটির ক্রম পুনর্বিন্যাস করতে হবে এবং একটি স্ট্রিং হিসাবে ফেরত দিতে হবে।

সুতরাং, যদি ইনপুটটি nums =[20, 8, 85, 316] এর মত হয়, তাহলে আউটপুট হবে "88531620"।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • একটি অ্যারে টেম্প সংজ্ঞায়িত করুন
  • প্রতিটি আইটেমের জন্য আমি সংখ্যায়:
    • i temp-এ স্ট্রিং হিসেবে ঢোকান
  • লেক্সিকোগ্রাফিক সিকোয়েন্সের উপর ভিত্তি করে অ্যারে টেম্প বাছাই করুন (দুটি স্ট্রিং a, b পরীক্ষা করুন যখন একটি concatenate b b concatenate a বা না থেকে বড় হয়)
  • প্রতিটি স্ট্রিংয়ের জন্য temp:
    • res :=res concatenate s
  • রিটার্ন রিটার্ন

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

উদাহরণ

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

static bool cmp(string a, string b) {
   return (a + b) >= (b + a);
}
string solve(vector<int>& nums) {
   vector<string> temp;
   for (int i : nums) {
      temp.push_back(to_string(i));
   }
   sort(temp.begin(), temp.end(), cmp);
   string res;
   for (string s : temp) {
      res += s;
   }
   return res;
}

int main(){
   vector<int> v = {20, 8, 85, 316};
   cout << solve(v);
}

ইনপুট

{20, 8, 85, 316}

আউটপুট

88531620

  1. C++ প্রোগ্রাম দশমিক সংখ্যাকে অক্টালে রূপান্তর করতে

  2. তিনটি সংখ্যার মধ্যে সবচেয়ে বড় সংখ্যা খুঁজে পেতে C++ প্রোগ্রাম

  3. পাইথনে দুটি সংখ্যার তালিকা থেকে সবচেয়ে বড় দূরত্বের জোড়া খুঁজে বের করার প্রোগ্রাম

  4. পাইথন - প্রদত্ত সংখ্যার তালিকা থেকে সম্ভাব্য সবচেয়ে বড় সংখ্যা