हमें लंबाई n की पूर्णांकों की एक सरणी Arr[] और एक संख्या M दी गई है। सरणी में केवल धनात्मक पूर्णांक हैं। लक्ष्य Arr[] के उन तत्वों के ट्रिपलेट की गणना करना है जिनका गुणनफल M के बराबर हो।
हम इसे तीन फॉर लूप का उपयोग करके करेंगे। काउंट बढ़ाएं यदि arr[x]*arr[y]*arr[z]=M और x!=y!=z। (0<= x,y,z
उदाहरण से समझते हैं
इनपुट
arr[]= { 1,2,3,0,2,4 }, M=24 आउटपुट
गुणनफल M वाले ट्रिपलेट की संख्या: 2
व्याख्या
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 कुल ट्रिपलेट: 2
इनपुट
arr[]= {2,2,2,2,2}, M=6 आउटपुट
गुणनफल M वाले ट्रिपलेट की संख्या: 0
व्याख्या
प्रत्येक ट्रिपलेट का गुणनफल 8 के बराबर है। कुल ट्रिपलेट: 0
नीचे दिए गए प्रोग्राम में उपयोग किया गया दृष्टिकोण
हम यादृच्छिक संख्याओं से आरंभ एक पूर्णांक सरणी Arr[] लेते हैं।
चर N Arr[] की लंबाई संग्रहीत करता है।
फ़ंक्शन productisM(int arr[],int n,int m) एक सरणी, उसकी लंबाई लेता है और उन ट्रिपलेट को लौटाता है जिनमें गुणनफल m के बराबर है।
प्रारंभिक चर count को 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; //सरणी की लंबाई int M=24; cout <<endl<< "गुणनफल M वाले ट्रिपलेट की संख्या: "<<productisM(Arr,N,M); return 0; } आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्नलिखित आउटपुट उत्पन्न करेगा -
गुणनफल M वाले ट्रिपलेट की संख्या: 4