हमें पूर्णांक प्रकार के तत्वों की एक सरणी दी गई है और कार्य दिए गए सरणी से जोड़े बनाना है और जोड़ी में तत्वों के उत्पाद की गणना करना है और यह जांचना है कि दिया गया उत्पाद दिए गए सरणी में मौजूद है या नहीं।
इनपुट - 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