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