हमें लंबाई n वाले पूर्णांकों की एक सरणी Arr[] दी गई है। लक्ष्य त्रिगुणों की संख्या ज्ञात करना है(Arr[i],Arr[j],Arr[k]) ताकि किन्हीं दो संख्याओं का योग तीसरी संख्या के बराबर हो।
a+b=c, जहां a,b,c, Arr[] के अवयव हैं जिनमें अनुक्रमणिका i,j,k इस प्रकार है कि 0<=i
इनपुट
arr[]= { 1,2,2,3,4 }, N=5
आउटपुट
Number of triplets: 4
स्पष्टीकरण
गिरफ्तारी के साथ ट्रिपल [x]+arr[y]=arr[z]।
Arr{}=[ 1,2,2,3,4 ] =(1,2,3) → 1+2=3 Arr{}=[ 1,2,2,3,4 ] =(1,2,3) → 1+2=3 Arr{}=[ 1,2,2,3,4 ] =(1,3,4) → 1+3=4 Arr{}=[ 1,2,2,3,4 ] =(2,2,4) → 2+2=4
कुल ट्रिपल:4
इनपुट
arr[]= {2,2,2,2,2}, N=5
आउटपुट
Number of triplets: 0
स्पष्टीकरण
प्रत्येक दो संख्याओं का योग =4 होता है जो तीसरे =2 के बराबर नहीं होता है।
कुल ट्रिपल:0
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
-
हम एक पूर्णांक सरणी लेते हैं Arr[] यादृच्छिक संख्याओं के साथ आरंभ किया गया।
-
वेरिएबल एन Arr[] की लंबाई को स्टोर करता है।
-
फंक्शन गिनतीट्रिपलेट्स(int arr[],int n) एक सरणी लेता है, इसकी लंबाई ट्रिपल देता है जिसमें संख्याओं में से एक को अन्य दो के योग के रूप में लिखा जा सकता है
-
ट्रिपल की संख्या के लिए प्रारंभिक चर गणना को 0 के रूप में लें।
-
ट्रिपलेट के प्रत्येक तत्व के लिए लूप के लिए तीन का उपयोग करके ट्रैवर्स सरणी।
-
0<=i
-
जाँच करें कि क्या गिरफ्तारी [i]+arr[j]==arr[k] या arr[i]+arr[k]==arr[j] या arr[k]+arr[j]==arr[i] अगर सच तो वृद्धि की गिनती।
-
सभी लूपों के अंत में काउंट में शर्त को पूरा करने वाले ट्रिपल की कुल संख्या होगी।
-
परिणाम के रूप में गिनती लौटाएं।
उदाहरण
#include <bits/stdc++.h> using namespace std; int countTriplets(int arr[], int n){ 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++){ if(arr[i]+arr[j]==arr[k] || arr[j]+arr[k]==arr[i] || arr[k]+arr[i]==arr[j]){ count++; } } } } return count; } int main(){ int Arr[]={ 1,2,2,3,4 }; int N=5; //length of array cout <<endl<< "Number of triplets : "<<countTriplets(Arr,N); return 0; }
आउटपुट
Number of triplets : 4