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

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

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

इनपुट - int arr[] ={6, 2, 3, 1, 5, 10}

आउटपुट − उन युग्मों की संख्या जिनके उत्पाद एक ही सरणी में मौजूद हैं − 7

स्पष्टीकरण - दिए गए सरणी से बनने वाले जोड़े हैं:(6, 2), (6, 3), (6, 1), (6, 5), (6, 10), (2, 3), ( 2, 1), (2, 5), (2, 10), (3, 1), (3, 5), (3, 10), (1, 5), (1, 10), (5, 10)। तो एक ही सरणी में दिए गए उत्पाद मान के साथ जोड़े (2, 3) 6 के रूप में, (6, 1) 6 के रूप में, (3, 1) 3 के रूप में, (2, 5) 10, (1, 5) के रूप में हैं 5 के रूप में, (2, 1) 2 के रूप में, (1, 10 ) के रूप में 10.

इनपुट - int arr[] ={2, 4, 8, 5, 10}

आउटपुट − जोड़े की संख्या जिनके उत्पाद एक ही सरणी में मौजूद हैं − 2

स्पष्टीकरण - दिए गए सरणी से जो जोड़े बन सकते हैं वे हैं:(2, 4), (2, 8), (2, 5), (2, 10), (4, 8), (4, 5), ( 4, 10), (8, 5), (8, 10), (5, 10)। तो एक ही सरणी में दिए गए उत्पाद मान वाले जोड़े (2, 4) 8 के रूप में, (5, 2) 10 के रूप में हैं।

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

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

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

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

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

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

  • लूप के अंदर उत्पाद की गणना arr[i] * arr[j]

    . के रूप में करें
  • k से 0 तक किसी सरणी के आकार तक के लिए एक और लूप प्रारंभ करें

  • K लूप के अंदर, IF उत्पाद =arr[k] जांचें, फिर गिनती को 1 से बढ़ाएं

  • गिनती लौटाएं

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

कुशल तरीका

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

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

  • प्रो के रूप में सेट एसटीएल प्रकार का एक वैरिएबल बनाएं

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

  • लूप के अंदर, arr[i] सेट वेरिएबल प्रो में डालें

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

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

  • उत्पाद को गिरफ्तारी के रूप में सेट करें[i] * arr[j]

  • जाँच करें IF pro.find(product) !=pro.end() फिर गिनती को 1 से बढ़ाएँ

  • गिनती लौटाएं

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

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

#include <bits/stdc++.h>
using namespace std;
int product_pair(int arr[], int size){
   int product = 1;
   int count = 0;
   for(int i = 0 ; i<size ; i++){
      for(int j = i+1;j<size;j++){
         product = arr[i] * arr[j];
         for(int pro = 0 ; pro < size; pro++){
            if(product == arr[pro]){
               count++;
            }
         }
      }
   }
   return count;
}
int main(){
   int arr[] = {6, 2, 3, 1, 5, 10};
   int size = sizeof(arr)/sizeof(arr[0]);
   cout<<"Count of pairs whose products exist in same array are: "<<product_pair(arr,size);
   return 0;
}

आउटपुट

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

Count of pairs whose products exist in same array are: 7

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

#include<bits/stdc++.h>
using namespace std;
int product_pair(int arr[], int size){
   set< int > pro;
   int count = 0;
   int product = 1;
   for (int i = 0 ; i < size; i++){
      pro.insert(arr[i]);
   }
   for (int i = 0 ; i < size; i++){
      for (int j = i + 1; j < size ; j++){
         product = arr[i] * arr[j];
         if(pro.find(product) != pro.end()){
            count++;
         }
      }
   }
   return count;
}
int main(){
   int arr[] = {6, 2, 3, 1, 5, 10};
   int size = sizeof(arr)/sizeof(arr[0]);
   cout<<"Count of pairs whose products exist in same array are: "<<product_pair(arr,size);
   return 0;
}

आउटपुट

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

Count of pairs whose products exist in same array are: 7

  1. एक सरणी के सभी युग्मों की गणना करें जो C++ में K बिट्स में भिन्न हैं

    इस ट्यूटोरियल में, हम एक प्रोग्राम के बारे में चर्चा करेंगे जो एक सरणी के जोड़े की संख्या को खोजने के लिए है जो K बिट्स में भिन्न है। इसके लिए हमें एक सरणी और एक पूर्णांक K प्रदान किया जाएगा। हमारा कार्य उन जोड़ों की संख्या ज्ञात करना है जो अपने बाइनरी प्रतिनिधित्व में K बिट्स से भिन्न होते हैं। उद

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

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

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

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