n সংখ্যক ধনাত্মক সংখ্যার একটি অ্যারে দেওয়া আছে। লক্ষ্য হল অর্ডার্ড পেয়ার (arr[x], arr[y]) গণনা করা যাদের গুণফল জোড় বা বিজোড়। পেয়ার (arr[i],arr[j]) এবং (arr[j],arr[i]) আলাদা গণনা হবে।
দুটি for লুপ দিয়ে সব পেয়ার চেক করা হয়। গুণফল জোড় হলে count1 (জোড় গুণফল বালা পেয়ার) ২ বাড়ানো হয়। বিজোড় হলে count2 (বিজোড় গুণফল বালা পেয়ার) ২ বাড়ানো হয়।
উদাহরণ
ইনপুট: Arr[] = { 1,1,2,3 }, N=4
আউটপুট: জোড় গুণফল বালা পেয়ার: ৬, বিজোড় গুণফল বালা পেয়ার: ৬
ব্যাখ্যা: বৈধ বিজোড় গুণফল বালা পেয়ার: (1,1), (1,1), (1,3), (3,1), (1,3), (3,1) = ৬। বৈধ জোড় গুণফল বালা পেয়ার: (1,2), (2,1), (1,2), (2,1), (2,3), (3,2) = ৬।
ইনপুট: Arr[] = { 2,2,2 }, N=3
আউটপুট: জোড় গুণফল বালা পেয়ার: ৬, বিজোড় গুণফল বালা পেয়ার: ০
ব্যাখ্যা: সব উপাদান জোড়, তাই কোনো বিজোড় গুণফল নেই।
অ্যাপ্রোচ
- ইন্টিজার অ্যারে arr[] নেওয়া হয়।
- n ভেরিয়েবলে অ্যারের দৈর্ঘ্য।
countPairs(int arr[], int n)ফাংশন অ্যারে এবং দৈর্ঘ্য গ্রহণ করে জোড় ও বিজোড় গুণফল বালা পেয়ার সংখ্যা প্রিন্ট করে।- দুটি নেস্টেড for লুপ দিয়ে ট্রাভার্স করা হয়।
- prod = arr[i]*arr[j]। prod%2==0 হলে count1+=2, অন্যথায় count2+=2।
উদাহরণ কোড
#include <bits/stdc++.h>
using namespace std;
void countPairs(int arr[], int n) {
int count1 = 0; // জোড় গুণফল বালা পেয়ার
int count2 = 0; // বিজোড় গুণফল বালা পেয়ার
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) {
count1 += 2;
} 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