हमें एक सरणी दी गई है जिसमें त्रिभुजों की भुजाओं की लंबाई होती है। लक्ष्य संभव त्रिभुजों की संख्या ज्ञात करना है जो उस सरणी से किन्हीं तीन भुजाओं को लेकर बनाए जा सकते हैं।
हम यह जाँच करके करेंगे कि क्या किन्हीं दो का योग हमेशा> तीसरा पक्ष है। यदि हाँ, तो ये तीनों भुजाएँ एक त्रिभुज बना सकती हैं। संभावित त्रिभुजों की वृद्धि संख्या जिन्हें बनाया जा सकता है।
आइए उदाहरणों से समझते हैं।
इनपुट - गिरफ्तारी [] ={1,2,4,5}
आउटपुट − संभावित त्रिभुजों की संख्या − 1
स्पष्टीकरण - भुजाएं (2,4,5) केवल 2+4>5 और 4+5>2 और 2+5>4
के रूप में एक त्रिभुज बना सकती हैंइनपुट - गिरफ्तारी [] ={4,5,6,3,2}
आउटपुट − संभावित त्रिभुजों की संख्या − 7
स्पष्टीकरण - भुजाएँ (4,5,6), (4,5,2), (4,5,3), (4,3,2), (5,6,3), (5,6,2) त्रिकोण बनाओ।
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
-
हम एक पूर्णांक सरणी लेते हैं arr[] यादृच्छिक सकारात्मक संख्याओं के साथ आरंभ किया गया।
-
फ़ंक्शन गिनती त्रिकोण (int arr [], int n) सरणी और उसकी लंबाई लेता है और संभावित त्रिकोण लौटाता है जिसे बनाया जा सकता है।
-
त्रिभुजों की प्रारंभिक गणना 0 के रूप में लें।
-
तीन भुजाओं के लिए तीन लूप लें।
-
सबसे बाहरी लूप 0<=i
-
पक्षों के लिए arr[i],arr[j],arr[k] जांचें कि क्या वे त्रिभुज की भुजाएं बनाते हैं।
-
गिरफ्तारी की जाँच करें [i] + गिरफ्तारी [जे]> गिरफ्तारी [के] &&गिरफ्तारी [i] + गिरफ्तारी [के]> गिरफ्तार [जे] &&गिरफ्तारी [के] + गिरफ्तार [जे]> गिरफ्तारी [i] अगर सही वृद्धि गिनती।
-
परिणाम के रूप में वापसी की गिनती।
उदाहरण
#include <bits/stdc++.h> using namespace std; int countTriangles(int arr[], int n){ // Count of triangles int count = 0; for (int i = 0; i < n-2; i++){ for (int j = i + 1; j < n-1; j++){ for (int k = j + 1; k < n; k++){ //any two sides have sum > third if ( arr[i] + arr[j] > arr[k] && arr[i] + arr[k] > arr[j] && arr[k] + arr[j] > arr[i]) { count++; } } } } return count; } int main(){ int Arr[] = { 1,2,5,3,6,8,10 }; int len = sizeof(Arr) / sizeof(Arr[0]); cout << "count of Triangles possible : "<< countTriangles(Arr, len); return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -
count of Triangles possible : 8