हमें n धनात्मक संख्याओं की एक सरणी दी गई है। लक्ष्य arr[x] और arr के गुणनफल के साथ क्रमबद्ध जोड़े (arr[x], arr[y]) को गिनना है [y] सम या विषम है। जोड़ी (arr[i],arr[j] ) और (arr[j],arr[i] को अलग से गिना जाता है।
हम प्रत्येक जोड़े की संख्या के लिए दो for लूप का उपयोग करके सरणी को पार करेंगे। अब उत्पाद की गणना करें, यदि यह सम उत्पादों के लिए भी 2 की वृद्धि है, अन्यथा विषम उत्पादों के लिए 2 से वृद्धि की गणना की जाती है।
आइए उदाहरणों से समझते हैं।
इनपुट - अर []={ 1,1,2,3 } एन=4
आउटपुट − सम उत्पाद युग्मों की संख्या:6 विषम उत्पाद युग्मों की संख्या:6
स्पष्टीकरण − मान्य विषम उत्पाद जोड़े हैं −
Arr[0] & Arr[1] → (1,1) Arr[1] & Arr[0] → (1,1) count=2 Arr[0] & Arr[3] → (1,3) Arr[3] & Arr[0] → (3,1) count=2 Arr[1] & Arr[3] → (1,3) Arr[3] & Arr[1] → (3,1) count=2 Total=6 Valid even product pairs are: Arr[0] & Arr[2] → (1,2) Arr[2] & Arr[0] → (2,1) count=2 Arr[1] & Arr[2] → (1,2) Arr[2] & Arr[1] → (2,1) count=2 Arr[2] & Arr[3] → (2,3) Arr[3] & Arr[2] → (3,2) count=2 Total=6
इनपुट - अर []={ 2,2,2 } एन=3
आउटपुट − सम उत्पाद युग्मों की संख्या − 6 विषम उत्पाद युग्मों की संख्या − 0
स्पष्टीकरण − मान्य सम उत्पाद जोड़े हैं −
Arr[0] & Arr[1] → (2,2) Arr[1] & Arr[0] → (2,2) count=2 Arr[1] & Arr[2] → (2,2) Arr[2] & Arr[1] → (2,2) count=2 Arr[2] & Arr[3] → (2,2) Arr[3] & Arr[2] → (2,2) count=2 Total=6 No odd product as all elements are even.
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
-
हम एक पूर्णांक सरणी लेते हैं arr[] यादृच्छिक संख्याओं के साथ आरंभ किया गया।
-
एक वैरिएबल n लें जो Arr[] की लंबाई को स्टोर करता है।
-
फ़ंक्शन काउंटपेयर्स (int arr[], int n) एक सरणी लेता है, इसकी लंबाई इनपुट के रूप में और सम और विषम उत्पादों के साथ जोड़े की संख्या को प्रिंट करता है।
-
जोड़ी के प्रत्येक तत्व के लिए लूप के लिए दो का उपयोग करके ट्रैवर्स सरणी।
-
0<=i
-
जांचें कि क्या गिरफ्तारी [i] * गिरफ्तार [जे]% 2 ==0। arr[i],arr[j] और arr[j],arr[i] के रूप में सम उत्पाद युग्मों की गणना के लिए 2 से वृद्धि गणना1 दो जोड़े होंगे।
-
यदि उपरोक्त शर्त विषम उत्पाद युग्मों के लिए 2 से झूठी वृद्धि गणना2 है।
-
सभी लूपों के अंत में count1 में जोड़े की कुल संख्या होगी जिसमें सम उत्पाद होगा और count2 में विषम उत्पाद वाले जोड़े की कुल संख्या होगी
-
परिणाम के रूप में count1 और count2 प्रिंट करें।
उदाहरण
#include <bits/stdc++.h> using namespace std; void countPairs(int arr[], int n){ int count1=0; //even product pairs int count2=0; //odd product pairs int prod=1; for(int i=0;i<n-1;i++){ for(int j=i+1;j<n;j++){ prod=arr[i]*arr[j]; if(prod%2==0) //product is even { count1+=2; } //(a,b) and (b,a) as two pairs else { count2+=2; } } } cout<<"Even Product pairs: "<<count1; cout<<endl<<"Odd Product pairs: "<<count2; } int main(){ int arr[] = { 1,2,7,3 }; int n = sizeof(arr) / sizeof(int); countPairs(arr, n); return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -
Even Product pairs: 6 Odd Product pairs: 6