কম্পিউটার

C++ এ অ্যারে থেকে সর্বাধিক পরিধি ত্রিভুজ


সমস্যা বিবৃতি

অ-নেতিবাচক পূর্ণসংখ্যার একটি অ্যারে দেওয়া হয়েছে। অ্যারে থেকে তিনটি উপাদান খুঁজে বের করুন যা সর্বাধিক পরিধির একটি ত্রিভুজ গঠন করে

উদাহরণ

If input array is {5, 1, 3, 5, 7, 4} then maximum perimeter is (7 + 5 + 5) = 17

অ্যালগরিদম

  • অ-ক্রমবর্ধমান ক্রমে অ্যারে সাজান। সুতরাং, প্রথম উপাদানটি সর্বাধিক এবং শেষটি সর্বনিম্ন হবে
  • যদি এই সাজানো অ্যারের প্রথম 3টি উপাদান একটি ত্রিভুজ গঠন করে, তাহলে এটি হবে সর্বাধিক পরিধি ত্রিভুজ

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
int getMaxPerimeter(int *arr, int n) {
   sort(arr, arr + n, greater<int>());
   int maxPerimeter = 0;
   for (int i = 0; i < n - 2; ++i) {
      if (arr[i] < arr[i + 1] + arr[i + 2]) {
         maxPerimeter = max(maxPerimeter, arr[i]
         + arr[i+1] + arr[i+2]);
         break;
      }
   }
   if (maxPerimeter) {
      return maxPerimeter;
   }
   return -1;
}
int main() {
   int arr[] = {5, 1, 3, 5, 7, 4};
   int n = sizeof(arr) / sizeof(arr[0]);
   int maxPerimeter;
   maxPerimeter = getMaxPerimeter(arr, n);
   if (maxPerimeter != -1) {
      cout << "Max perimeter = " << maxPerimeter <<
      endl;
   } else {
      cout << "Triangle formation is not possible" <<
      endl;
   }
   return 0;
}

আউটপুট

আপনি যখন উপরের প্রোগ্রামটি কম্পাইল এবং এক্সিকিউট করবেন। এটি নিম্নলিখিত আউটপুট −

তৈরি করে
Max perimeter = 17

  1. C++ এ সমান্তরাল অ্যারে

  2. C++ এ একটি ত্রিভুজের পরিধি খুঁজুন

  3. C++ এ একটি অ্যারে বিপরীত করুন

  4. কিভাবে C++ এ একটি ফাংশন থেকে একটি অ্যারে ফেরত যায়?