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

एक क्रमबद्ध सरणी में जोड़े की गणना करें जिसका उत्पाद C++ में k से कम है

हमें पूर्णांक प्रकार के तत्वों की एक क्रमबद्ध सरणी और एक पूर्णांक चर x दिया जाता है और कार्य दिए गए सरणी से जोड़े बनाना और जोड़ी में तत्वों के उत्पाद की गणना करना और जांचना है कि परिकलित उत्पाद k से कम है या नहीं।

इनपुट

int arr[] = {2, 7, 1, 0, 8}, int k = 10

आउटपुट

Count of pairs in a sorted array whose product is less than k are: 7

स्पष्टीकरण

The pairs that can be formed from the given array are: (2, 7) = 14(greater than k), (2, 1) = 2(less than k), (2, 0) = 0(less than k), (2, 8) = 16(greater than k), (7, 1) = 7(less than k), (7, 0) = 0(less than k), (7, 8) = 56(greater than k), (1, 0) = 0(less than k), (1, 8) = 8(less than k), (0, 8) = 0(less than k). So, the count of pairs with sum less than k are 7.

इनपुट

int arr[] = {2, 4, 6, 8}, int k = 10

आउटपुट

Count of pairs in a sorted array whose product is less than k are: 1

स्पष्टीकरण

The pairs that can be formed from the given array are: (2, 4) = 8(less than k), (2, 6) = 12(greater than k), (2, 8) = 16(greater than k), (4, 6) = 24(greater than x), (4, 8) = 32(greater than k), (6, 8) = 48(greater than k). So, the count of pairs with products less than k is 1.

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

दी गई समस्या को हल करने के लिए कई दृष्टिकोण हो सकते हैं, अर्थात् सरल दृष्टिकोण और कुशल दृष्टिकोण। तो आइए सबसे पहले भोले दृष्टिकोण . को देखें ।

  • पूर्णांक तत्वों की एक सरणी इनपुट करें और एक सरणी के आकार की गणना करें और डेटा को फ़ंक्शन में पास करें

  • k से कम उत्पाद वाले जोड़े की संख्या को संग्रहीत करने के लिए एक अस्थायी चर गणना की घोषणा करें।

  • एक सरणी के आकार तक i से 0 तक के लिए लूप प्रारंभ करें

  • लूप के अंदर, एक और लूप फॉर जे से i + 1 तक एक ऐरे के आकार तक शुरू करें

  • लूप के अंदर उत्पाद को arr[i] * arr[j] के रूप में परिकलित करें और IF उत्पाद की जाँच करें

  • गिनती वापस करें

  • प्रिंट परिणाम।

कुशल तरीका

  • पूर्णांक तत्वों की एक सरणी इनपुट करें और एक सरणी के आकार की गणना करें और डेटा को फ़ंक्शन में पास करें

  • x से कम योग वाले युग्मों की संख्या को संग्रहीत करने के लिए एक अस्थायी चर गणना की घोषणा करें।

  • arr_0 को 0 के रूप में और arr_1 को आकार-1 के रूप में सेट करें

  • arr_0 से arr_1 तक के लिए लूप प्रारंभ करें_1

  • लूप के अंदर, IF arr[arr_0] * arr[arr_1]

  • गिनती वापस करें

  • परिणाम प्रिंट करें।

उदाहरण (बेवकूफ दृष्टिकोण)

#include <iostream>
using namespace std;
int pair_product(int arr[], int size, int k){
   int count = 0;
   int product = 1;
   for(int i = 0 ; i<size ; i++){
      for(int j = i+1; j<size; j++){
         product = arr[i] * arr[j];
         if(product < k){
            count++;
         }
      }
   }
   return count;
}
int main(){
   int arr[] = {5, 8, 2, 1, 3};
   int size = sizeof(arr) / sizeof(arr[0]);
   int k = 10;
   cout<<"Count of pairs in a sorted array whose product is less than k are: "<<pair_product(arr, size, k);
   return 0;
}

आउटपुट

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

Count of pairs in a sorted array whose product is less than k are: 5

उदाहरण (कुशल दृष्टिकोण)

#include <iostream>
using namespace std;
int pair_product(int arr[], int size, int k){
   int arr_0 = 0;
   int arr_1 = size-1;
   int count = 0;
   int product = 1;
   while(arr_0 < arr_1){
      product = arr[arr_0] * arr[arr_1];
      if (product < k){
         count = count + (arr_1 - arr_0);
         arr_0++;
      }
      else{
         arr_1--;
      }
   }
   return count;
}
int main(){
   int arr[] = {1, 3, 4, 2, 1};
   int size = sizeof(arr) / sizeof(arr[0]);
   int k = 5;
   cout<<"Count of pairs in a sorted array whose product is less than k are: "<<pair_product(arr, size, k);
   return 0;
}

आउटपुट

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

Count of pairs in a sorted array whose product is less than k are: 10

  1. सी ++ में क्रमबद्ध बाइनरी सरणी में 1 की गणना करें

    इस ट्यूटोरियल में, हम एक क्रमबद्ध बाइनरी एरे में 1 को खोजने के लिए एक प्रोग्राम पर चर्चा करेंगे। इसके लिए हमें केवल 1 और 0 वाली एक सरणी प्रदान की जाएगी। हमारा कार्य सरणी में मौजूद 1 की संख्या को गिनना है। उदाहरण #include <bits/stdc++.h> using namespace std; //returning the count of 1 int coun

  1. एक क्रमबद्ध सरणी में तत्व खोजें जिसकी आवृत्ति C++ में n/2 से अधिक या उसके बराबर हो।

    मान लें कि हमारे पास आकार n के साथ एक सरणी है। यह सरणी क्रमबद्ध है। एक तत्व है जिसकी आवृत्ति n/2 से अधिक या उसके बराबर है, जहाँ n सरणी में तत्वों की संख्या है। तो अगर सरणी [3, 4, 5, 5, 5] की तरह है, तो आउटपुट 5 होगा। यदि हम इस प्रकार के सरणी को बारीकी से देखें, तो हम आसानी से देख सकते हैं कि जिस सं

  1. सी ++ में एक क्रमबद्ध सरणी में पूर्ण विशिष्ट गणना?

    एक सरणी एक ही डेटा प्रकार के तत्वों का एक संग्रह है। एक क्रमबद्ध सरणी एक सरणी है जिसमें तत्वों को आरोही या अवरोही क्रम में संग्रहीत किया जाता है। विशिष्ट गणना उन तत्वों की संख्या है जो समान नहीं हैं। एब्सोल्यूट डिफरेंट काउंट तत्वों के निरपेक्ष मान की अलग गिनती है यानी बिना चिह्न वाले तत्व (अहस्ताक