Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में रेंज [a,b] में योग वाले ट्रिपलेट्स की गिनती


हमें पूर्णांकों की एक सरणी 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

व्याख्या -

ट्रिपलेट्स जिनका योग>=2 और योग<=8 (1,2,3) → 6 (1,2,4) → 7 (1,2,5) → 8 (1,3,4) → 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 तो काउंट बढ़ाते हैं।

  • सभी लूप के अंत में काउंट में शर्त पूरी करने वाले ट्रिपलेट्स की कुल संख्या होगी।

  • काउंट को वांछित परिणाम के रूप में लौटाते हैं।

उदाहरण

#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

  1. C++ में उन नोड्स को गिनना जिनका योग X के साथ फाइबोनैचि संख्या है C++ में उन नोड्स को गिनना जिनका योग X के साथ फाइबोनैचि संख्या है

    नोड्स के वजन वाली एक बाइनरी ट्री दी गई है। लक्ष्य उन नोड्स की संख्या ढूंढना है जिनके वजन ऐसे हैं कि संख्या एक फाइबोनैचि संख्या है। फाइबोनैचि श्रृंखला में संख्याएं हैं: 0, 1, 1, 2, 3, 5, 8, 13... nth संख्या (n-1)th और (n-2)th का योग है। यदि वजन 13 है तो यह एक फाइबोनैचि संख्या है इसलिए नोड गिना जाएगा।

  1. - C++ में ऐरे में न्यूनतम संख्या जोड़कर योग को सम बनाना

    मान लीजिए एक ऐरे है जिसमें कुछ संख्याएं हैं। हमें बताना है कि न्यूनतम कितनी संख्याएं जोड़ने से तत्वों का योग सम हो जाएगा। संख्या 0 से बड़ी होनी चाहिए। इसलिए यदि तत्वों का योग विषम है, तो हम 1 जोड़ेंगे, लेकिन यदि योग पहले से सम है, तो हम 2 जोड़कर इसे सम बनाएंगे। एल्गोरिदम addMinNumber(arr) begin

  1. - C++ में सम ऐरे पजल (बिना घटाव ऑपरेटर के)

    यहां हम ऐरे से संबंधित एक रोचक समस्या देखेंगे। n तत्वों वाला एक ऐरे है। हमें n तत्वों का एक और ऐरे बनाना है। लेकिन दूसरे ऐरे का i-th स्थान पहले ऐरे के i-th तत्व को छोड़कर सभी तत्वों का योग रखेगा। और एक प्रतिबंध है कि हम इस समस्या में घटाव ऑपरेटर का उपयोग नहीं कर सकते। यदि हम घटाव ऑपरेशन का उपयोग कर