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