ได้รับอาร์เรย์ n ตัว ต้องการนับคู่ลำดับ (arr[x], arr[y]) ที่ผลคูณเป็นเลขคู่หรือเลขคี่ คู่ (i,j) และ (j,i) นับแยกกัน
ตัวอย่าง
อินพุต: Arr[] = {1, 1, 2, 3}, N = 4
เอาต์พุต: ผลคูณคู่: 6, ผลคูณคี่: 6
อินพุต: Arr[] = {2, 2, 2}, N = 3
เอาต์พุต: ผลคูณคู่: 6, ผลคูณคี่: 0
แนวทาง
- ลูปซ้อน 2 ชั้น i=0..n-2, j=i+1..n-1
- คำนวณ prod = arr[i]×arr[j]
- ถ้า prod%2==0 เพิ่ม count1 += 2 มิฉะนั้น count2 += 2
ตัวอย่างโค้ด C++
#include <bits/stdc++.h>
using namespace std;
void countPairs(int arr[], int n) {
int count1 = 0, 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