हमें लंबाई 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