हमें एक पूर्णांक सरणी दी गई है और कार्य दिए गए सरणी मानों का उपयोग करके बनने वाले कुल युग्मों की संख्या गिनना है जैसे कि युग्मों पर XOR ऑपरेशन का परिणाम एक विषम मान हो।
XOR ऑपरेशन के लिए सत्य सारणी
| A | B | A XOR B |
|---|---|---|
| 0 | 0 | 0 |
| 1 | 0 | 1 |
| 0 | 1 | 1 |
| 1 | 1 | 0 |
इनपुट - int arr[] = {2, 8, 1, 5, 11}
आउटपुट - विषम XOR वाले युग्मों की संख्या - 6
व्याख्या -
| a1 | a2 | a1 XOR a2 |
|---|---|---|
| 2 | 8 | 10 |
| 2 | 1 | 3 |
| 2 | 5 | 7 |
| 2 | 11 | 9 |
| 8 | 1 | 9 |
| 8 | 5 | 13 |
| 8 | 11 | 3 |
| 1 | 5 | 4 |
| 1 | 11 | 10 |
| 5 | 11 | 14 |
उपयोग किया गया दृष्टिकोण
- युग्म बनाने के लिए पूर्णांक तत्वों की एक सरणी इनपुट करें
- सरणी का आकार गणना करें और आगे की प्रक्रिया के लिए डेटा को फ़ंक्शन में पास करें
- XOR ऑपरेशन के रूप में विषम मान वाले युग्मों को संग्रहीत करने के लिए एक अस्थायी चर
countबनाएं। - i से 0 से सरणी के आकार तक लूप FOR शुरू करें
- लूप के अंदर, जांचें IF
arr[i] % 2 == FALSEतोeven_XOR++बढ़ाएं अन्यथाodd_XOR++बढ़ाएं - अब
count = odd_XOR * even_XORसेट करें - काउंट लौटाएं
- परिणाम प्रिंट करें
C++ कार्यान्वयन
#include <iostream>
using namespace std;
// Count pairs with Odd XOR
int Odd_XOR(int arr[], int size) {
int count = 0;
int odd_XOR = 0;
int even_XOR = 0;
for (int i = 0; i < size; i++) {
if (arr[i] % 2 == 0) {
even_XOR++;
} else {
odd_XOR++;
}
}
count = odd_XOR * even_XOR;
return count;
}
int main() {
int arr[] = { 2, 6, 1, 4 };
int size = sizeof(arr) / sizeof(arr[0]);
cout << "Count of pairs with Odd XOR are: " << Odd_XOR(arr, size);
return 0;
}
आउटपुट
Count of pairs with Odd XOR are: 3