हमें n धनात्मक संख्याओं की एक सरणी दी गई है। लक्ष्य क्रमित जोड़े (arr[x], arr[y]) को arr[x] और arr के योग के साथ गिनना है। [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 sum 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 sum 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 है।
-
सभी लूपों के अंत में गिनती 1 में जोड़े की कुल संख्या होगी जिसमें योग भी होगा और गिनती 2 में विषम योग वाले जोड़े की कुल संख्या होगी
-
परिणाम के रूप में count1 और count2 प्रिंट करें।
उदाहरण
#include <bits/stdc++.h>
using namespace std;
void countPairs(int arr[], int n){
int count1=0; //even sum pairs
int count2=0; //odd sum pairs
int sum=0;
for(int i=0;i<n-1;i++){
for(int j=i+1;j<n;j++){
sum=arr[i]+arr[j];
if(sum%2==0) //sum is even
{ count1+=2; } //(a,b) and (b,a) as two pairs
else
{ count2+=2; }
}
}
cout<<"Even Sum pairs: "<<count1;
cout<<endl<<"Odd Sum pairs: "<<count2;
}
int main(){
int arr[] = { 1,2,3,2 };
int n = sizeof(arr) / sizeof(int);
countPairs(arr, n);
return 0;
} आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -
Even Sum pairs: 4 Odd Sum pairs: 8