हमें संख्याओं की एक सरणी Arr[] दी गई है। लक्ष्य उन ट्रिपलेट्स की संख्या गिनना है जिनका गुणनफल सभी संभावित ट्रिपलेट्स के सबसे छोटे गुणनफल के बराबर है। ट्रिपलेट्स गिनें यदि (i हम इसे पहले न्यूनतम गुणनफल ढूंढकर करेंगे जहां (i आइए उदाहरणों से समझते हैं। इनपुट - arr[]= { 1,2,3,2,4,1,5 } आउटपुट - ट्रिपलेट्स की संख्या: 2 व्याख्या - इनपुट - arr[]= { 1,1,2,1,2,2 } आउटपुट - ट्रिपलेट्स की संख्या: 1 व्याख्या - हम यादृच्छिक संख्याओं से आरंभ एक पूर्णांक सरणी Arr[] लेते हैं। एक वेरिएबल N लेते हैं जो Arr[] की लंबाई स्टोर करता है। फंक्शन countTriplets(int arr[], int n) एक सरणी, उसकी लंबाई को इनपुट के रूप में लेता है और उन ट्रिपलेट्स को लौटाता है जिनका गुणनफल न्यूनतम गुणनफल के बराबर है। ट्रिपलेट्स की संख्या के लिए प्रारंभिक वेरिएबल count को 0 के रूप में लेते हैं। प्रत्येक ट्रिप्लेट के गुणनफल के लिए प्रारंभिक वेरिएबल prod को 1 के रूप में लेते हैं। सभी ट्रिपलेट्स के न्यूनतम संभव गुणनफल के लिए प्रारंभिक वेरिएबल minprod को 999 के रूप में लेते हैं। प्रत्येक ट्रिप्लेट के तत्व के लिए तीन फॉर लूप का उपयोग करके सरणी को पार करते हैं। बाहरी लूप 0<=i prod=arr[i]*arr[j]*arr[k] की गणना करते हैं। यदि prod<=minprod तो minprod को prod से अपडेट करते हैं। अब minprod में सभी ट्रिपलेट्स के सबसे कम गुणनफल का मान है। फिर से प्रत्येक ट्रिप्लेट के तत्व के लिए तीन फॉर लूप का उपयोग करके सरणी को पार करते हैं। बाहरी लूप 0<=i prod=arr[i]*arr[j]*arr[k] की गणना करते हैं। यदि prod==minprod तो काउंट बढ़ाते हैं। क्योंकि इस युग्म का न्यूनतम गुणनफल है। सभी लूप के अंत में काउंट में शर्त पूरी करने वाले ट्रिपलेट्स की कुल संख्या होगी। काउंट को परिणाम के रूप में लौटाते हैं। यदि हम उपरोक्त कोड चलाते हैं तो यह निम्नलिखित आउटपुट उत्पन्न करेगा -यहां न्यूनतम गुणनफल 2 है ट्रिप्लेट 1[ 1,2,3,2,4,1,5 ] → (1,2,1) गुणनफल=2 ट्रिप्लेट 2 [ 1,2,3,2,4,1,5 ] → (1,2,1) गुणनफल=2 गुणनफल 2 वाले ट्रिपलेट्स की संख्या जो न्यूनतम है, 2 है।
यहां न्यूनतम गुणनफल 1 है ट्रिप्लेट 1 [ 1,1,2,1,2,2 ] → (1,1,1) गुणनफल=1 गुणनफल 1 वाले ट्रिपलेट्स की संख्या जो न्यूनतम है, 1 है।
नीचे दिए गए प्रोग्राम में उपयोग किया गया दृष्टिकोण
उदाहरण
#include <bits/stdc++.h> using namespace std; int countTriplets(int arr[],int n){ int count = 0; int prod=1; int minprod=9999; //न्यूनतम को सरणी में किसी भी गुणनफल से बड़ा बनाना 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<=minprod ) { minprod=prod; } } } } // cout<<"minproduct :"<आउटपुट
ट्रिपलेट्स की संख्या: 2