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