Cho mảng số nguyên. Đếm số cặp (i,j) (i < j) sao cho arr[i] XOR arr[j] là số lẻ.
Nhận xét: XOR lẻ khi một số chẵn, một số lẻ. Kết quả = số_chẵn * số_lẻ.
Ví dụ: {2,8,1,5,11} → Chẵn: 2, Lẻ: 3 → Kết quả: 6.
Ví dụ
#include <iostream>
using namespace std;
int Odd_XOR(int arr[], int size) {
int even = 0, odd = 0;
for (int i = 0; i < size; i++)
if (arr[i] % 2 == 0) even++; else odd++;
return even * odd;
}
int main() {
int arr[] = {2,6,1,4};
int size = sizeof(arr) / sizeof(arr[0]);
cout << "Count: " << Odd_XOR(arr, size);
return 0;
}
Đầu ra
Count of pairs with Odd XOR are: 3