हमें लंबाई n और एक संख्या M के साथ पूर्णांकों की एक सरणी Arr[] दी गई है। सरणी में केवल धनात्मक पूर्णांक होते हैं। लक्ष्य Arr[] के तत्वों के त्रिगुणों की गणना करना है जिनका उत्पाद M के बराबर है।
हम लूप के लिए तीन का उपयोग करके ऐसा करेंगे। वृद्धि गिनती अगर गिरफ्तारी [x] * गिरफ्तारी [वाई] * गिरफ्तारी [जेड] =एम और एक्स! =वाई! =जेड। (0<=x,y,z
आइए उदाहरणों से समझते हैं।
इनपुट
arr[]= { 1,2,3,0,2,4 }, M=24
आउटपुट
Number of triplets with product M: 2
स्पष्टीकरण
Triplets with arr[x]*arr[y]*arr[z]==M. Arr{}=[ 1,2,3,0,2,4 ] =(2,3,4) → 2*3*4=24 Arr{}=[ 1,2,3,0,2,4 ] =(3,2,4) → 3*2*4=24 Total triplets: 2
इनपुट
arr[]= {2,2,2,2,2}, M=6
आउटपुट
Number of triplets with product M: 0
स्पष्टीकरण
Every triplet has product equal to 8 Total triplets: 0
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
-
हम एक पूर्णांक सरणी लेते हैं Arr[] यादृच्छिक संख्याओं के साथ आरंभ किया गया।
-
वेरिएबल एन Arr[] की लंबाई को स्टोर करता है।
-
फ़ंक्शन productisM(int arr[],int n,int m) एक सरणी लेता है, इसकी लंबाई ट्रिपल देता है जिसमें उत्पाद m के बराबर होता है।
-
ट्रिपल की संख्या के लिए प्रारंभिक चर गणना को 0 के रूप में लें।
-
ट्रिपलेट के प्रत्येक तत्व के लिए लूप के लिए तीन का उपयोग करके ट्रैवर्स सरणी।
-
0<=i
-
जाँच करें कि क्या arr[i]*arr[j]*arr[k]==m । अगर सही है तो इंक्रीमेंट काउंट।
-
सभी लूपों के अंत में काउंट में शर्त को पूरा करने वाले ट्रिपल की कुल संख्या होगी।
-
परिणाम के रूप में गिनती लौटाएं।
उदाहरण
#include <bits/stdc++.h> using namespace std; int productisM(int arr[], int n, int m){ 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++){ int prod=arr[i]*arr[j]*arr[k]; if(prod==m) { count++; } } } } return count; } int main(){ int Arr[]={ 1,2,3,0,2,4 }; int N=6; //length of array int M=24; cout <<endl<< "Number of triplets with product M : "<<productisM(Arr,N,M); return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -
Number of triplets with product M: 4