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

सी ++ में सख्ती से बढ़ते उपसरणियों की गणना करें

हमें एक सरणी दी गई है जिसमें पूर्णांक तत्व हैं और कार्य पहले दिए गए सरणी से सबएरे की गणना करना है और फिर जांचना है कि सबएरे में तत्व बढ़ते क्रम में हैं या नहीं। यदि हाँ, तो हम उप-सरणी पर विचार करेंगे अन्यथा इसे छोड़ दिया जाएगा।

यदि 0वें और 1वें स्थान के तत्व बढ़ते क्रम में नहीं हैं, तो उप-सरणी को और अधिक जाँचना बंद करने का तरीका यहाँ है।

उदाहरण के लिए- C++ में

इनपुट: int a[] ={1, 7, 5}

आउटपुट: सख्ती से बढ़ते उपसरणियों की संख्या है 1

स्पष्टीकरण - संभावित उप-सरणी में {1,7,5}, {1,7}, {7,5} शामिल हैं जहां {1,7} एकमात्र ऐसा सरणी है जो सख्ती से बढ़ते क्रम में है।

इनपुट: int a[] ={1, 2, 7, 10}

आउटपुट: सख्ती से बढ़ते उपसरणियों की संख्या 6 है

स्पष्टीकरण - संभावित उप-सरणी में {{1, 2}, {1, 2, 7}, {1, 2, 7, 10}, {2, 7}, {2, 7, 10} और {7, 10} और सभी शामिल हैं। सख्ती से बढ़ते क्रम में हैं।

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

  • एक सरणी घोषित की जाती है, तत्वों को इनपुट किया जाता है और डेटा को आगे की प्रक्रिया के लिए सरणी की लंबाई के साथ countIncSubarrays(a,a.length) नामक फ़ंक्शन में पास किया जाता है।
  • फ़ंक्शन के अंदर एक काउंट फ़्लैग इनिशियलाइज़ करें।
  • किसी सरणी की लंबाई 0 से i के लिए लूप प्रारंभ करें
  • लूप के अंदर, i+1 से एक सरणी की लंबाई तक j के लिए एक और लूप प्रारंभ करें
  • लूप के अंदर, जांचें कि क्या a[j], a[j-1] से बड़ा है और गिनती बढ़ाएं।
  • अन्यथा लूप तोड़ दें क्योंकि बढ़ते ऑर्डर की जांच विफल हो जाती है।
  • मुख्य फ़ंक्शन में परिणाम फ़ंक्शन कॉल से कैप्चर किया जाता है और आउटपुट के रूप में प्रिंट किया जाता है।

उदाहरण

import java.util.*;
class testqwe {
   static int MAX = 4;
   static int a[] = new int[MAX];
   static Scanner scan = new Scanner(System.in);
   static int countIncSubarrays(int a[], int n) {

      int count = 0;
      for (int i = 0; i < n; i++) {
         for (int j = i + 1; j < n; j++) {
            if (a[j] > a[j - 1])
               count++;
            else
               break;
         }
      }
      return count;
   }

   public static void main(String[] args) {
      for (int i = 0; i < a.length; i++) {
         a[i] = scan.nextInt(); //1,2,7,0
      }
      int result = countIncSubarrays(a, a.length);
      System.out.println("Count of strictly increasing subarrays is " +
         result);
   }
}

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

आउटपुट

Count of strictly increasing subarrays is 6

  1. C++ में समतल में समांतर चतुर्भुजों की संख्या

    हमें एक समतल दिया गया है जिसमें समांतर चतुर्भुज बनाने वाले बिंदु हैं और कार्य समांतर चतुर्भुजों की गणना करना है जो दिए गए बिंदुओं का उपयोग करके बनाए जा सकते हैं। समांतर चतुर्भुज में एक चतुर्भुज के विपरीत पक्ष समानांतर होते हैं और इसलिए विपरीत कोण बराबर होते हैं। इनपुट - int a[] = {0, 2, 5, 5, 2, 5,

  1. C++ में अधिकतम योग सख्ती से बढ़ते हुए सबरे का पता लगाएं

    मान लीजिए कि हमारे पास n पूर्णांकों की एक सरणी है। सख्ती से बढ़ते उपसरणियों का अधिकतम योग ज्ञात कीजिए। तो अगर सरणी [1, 2, 3, 2, 5, 1, 7] की तरह है, तो योग 8 है। इस सरणी में तीन सख्ती से बढ़ते उप-सरणी हैं ये {1, 2, 3}, {2 , 5} और {1, 7}। अधिकतम योग उप-सरणी {1, 7} है इस समस्या को हल करने के लिए, हमें

  1. सी++ प्रोग्राम एक ऐरे में व्युत्क्रम की गणना करने के लिए

    काउंट इनवर्जन का अर्थ है किसी सरणी को सॉर्ट करने के लिए आवश्यक स्विच की संख्या। उलटा गिनती =0, जब सरणी को क्रमबद्ध किया जाता है। उलटा गिनती =अधिकतम, जब सरणी को उल्टे क्रम में क्रमबद्ध किया जाता है। आइए एक सरणी में उलटा गिनने के लिए एक C++ प्रोग्राम विकसित करें। एल्गोरिदम Begin    Function