Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> 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. सी ++ में समानांतर सरणी

    समानांतर सरणी को संरचना सरणी भी कहा जाता है। परिभाषा - एक समानांतर सरणी को कई सरणियों के रूप में परिभाषित किया जा सकता है जिसमें ith तत्व निकट से संबंधित होते हैं, और साथ में, वे एक इकाई का गठन करते हैं। सी ++ भाषा में एक सरणी एक मौलिक विशेषता है। समानांतर सरणियाँ बनाने से हमें दो या अधिक सरणियों क

  1. C++ में त्रिभुज का परिमाप ज्ञात कीजिए

    इस समस्या में, हम एक त्रिभुज का परिमाप, विभिन्न प्रकार के त्रिभुजों के परिमाप का सूत्र और उन्हें खोजने का कार्यक्रम देखेंगे। परिधि आकृति के बारे में कुल दूरी के रूप में परिभाषित किया गया है। मूल रूप से, यह दी गई आकृति के सभी पक्षों का योग है। त्रिभुज का परिमाप त्रिभुज का परिमाप उसकी तीनों भुजाओं

  1. सी ++ में किसी फ़ंक्शन से सरणी कैसे वापस करें?

    सी ++ पूरे सरणी को वापस नहीं करता है लेकिन यह पॉइंटर को सरणी में वापस कर सकता है। फ़ंक्शन के बाहर, स्थानीय चर का पता वापस नहीं किया जा सकता है। स्थानीय चर को स्थिर बनाकर, यह स्थानीय चर का पता वापस कर सकता है। पॉइंटर वापस करने के लिए सिंटैक्स निम्नलिखित है। int * function_name() { body } यहां, fun