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

सी ++ में श्रेणी [ए, बी] में योग वाले सरणी में ट्रिपल की संख्या की गणना करें


हमें एक श्रेणी [a,b] परिभाषित करने के लिए पूर्णांकों की एक सरणी, Arr[] और दो चर a और b दिए गए हैं। लक्ष्य उन तीनों की संख्या ज्ञात करना है जिनका योग इस श्रेणी [a,b] के बीच में है।

हम लूप के लिए तीन का उपयोग करके ऐसा करेंगे। वृद्धि गिनती अगर गिरफ्तारी [i] + गिरफ्तारी [जे] + गिरफ्तारी [के]> =ए और एआर [i] + गिरफ्तारी [जे] + गिरफ्तार [के] <=बी। जहाँ 0<=i<=n-2, i

आइए उदाहरणों से समझते हैं।

इनपुट - एआर [] ={ 1,2,3,4,5}, एन =5, एल =2, आर =8

आउटपुट − त्रिगुणों की संख्या − 4

स्पष्टीकरण -

Triplets with sum>=2 and sum<=8
(1,2,3) → 6
(1,2,4) → 7
(1,2,5) → 8
(1,3,4) → 8
Total triplets: 4

इनपुट - arr[]={2,2,2,2,2}, N=5, L=2, R=5

आउटपुट − त्रिगुणों की संख्या − 0

स्पष्टीकरण -

प्रत्येक त्रिक का योग 6 होगा। जो [2,5]

के दायरे में नहीं है

कुल ट्रिपल:0

नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है

  • हम एक पूर्णांक सरणी लेते हैं Arr[] यादृच्छिक संख्याओं के साथ आरंभ किया गया।

  • एक श्रेणी [एल, आर] को परिभाषित करने के लिए चर एल और आर लें। N Arr[] की लंबाई संग्रहीत करता है।

  • फंक्शन काउंटट्रिपलेट्स (इंट एआर [], इंट एन, इंट ए, इंट बी) इनपुट के रूप में एक ऐरे, इसकी लंबाई और रेंज वेरिएबल लेता है और उन ट्रिपल्स को लौटाता है जिनका योग इस रेंज में है।

  • ट्रिपल की संख्या के लिए प्रारंभिक चर गणना को 0 के रूप में लें।

  • प्रारंभिक चर योग को प्रत्येक त्रिक के योग के रूप में लें। प्रारंभ में 0.

  • ट्रिपलेट के प्रत्येक तत्व के लिए लूप के लिए तीन का उपयोग करके ट्रैवर्स सरणी।

  • 0<=i

  • योग की गणना करें =एआर [i] + एआर [जे] + एआर [के]। अगर 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) //check{
               count++;
               // cout<<endl<<"a :"<<arr[i]<<" b :"<<arr[j]<<" c :"<<arr[k]; //to print
            }
         }
      }
   }
   return count;
}
int main(){
   int Arr[]={ 5,4,3,6,8,2 };
   int L=9;
   int R=15;
   int N=6; //length of array
   cout <<endl<< "Number of triplets : "<<countTriplets(Arr,N,L,R);
   return 0;
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -

Number of triplets : 14

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

    एक बाइनरी ट्री दिया गया है जिसके नोड्स के भार संख्याओं के रूप में हैं। लक्ष्य उन नोड्स की संख्या का पता लगाना है जिनका वजन इस तरह है कि संख्या एक फाइबोनैचि संख्या है। फाइबोनैचि श्रृंखला में संख्याएं हैं:0, 1, 1, 2, 3, 5, 8, 13…। n वीं संख्या का योग है (n−1)वें और (n−2)वें। अगर वजन 13 है तो यह एक फाइ

  1. किसी सरणी में न्यूनतम संख्या जोड़ें ताकि योग C++ में भी हो जाए?

    मान लीजिए कि कुछ संख्याओं के साथ एक सरणी है। हमें कम से कम यह बताना होगा कि तत्वों के योग को सम बनाने के लिए इसमें कितनी संख्याएँ जोड़ी जाएँगी। संख्या 0 से अधिक होनी चाहिए। इसलिए यदि तत्वों का योग विषम है, तो हम 1 जोड़ देंगे, लेकिन यदि योग पहले से ही सम है, तो हम इसे सम बनाने के लिए इसमें 2 जोड़ दें

  1. सी ++ में एक सम ऐरे पहेली?

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