हमें संख्याओं की एक सरणी के साथ दिया गया है 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.