हमें एक पूर्णांक सरणी दी गई है और कार्य जोड़े की कुल संख्या की गणना करना है जो दिए गए सरणी मानों का उपयोग करके बनाई जा सकती हैं जैसे कि जोड़े पर एक्सओआर ऑपरेशन के परिणामस्वरूप एक ओडीडी मान होगा।
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 संचालन के साथ गठित जोड़े को संग्रहीत करने के लिए एक अस्थायी चर गणना बनाएं।
-
एक सरणी के आकार तक i से 0 तक के लिए लूप प्रारंभ करें
-
लूप के अंदर, IF arr[i]% 2 ==FALSE की जाँच करें, फिर सम_XOR को 1 से बढ़ाएँ ELSE विषम_XOR++ को बढ़ाएँ;
-
अब गिनती को विषम_XOR *even_XOR
. के रूप में सेट करें -
गिनती वापस करें
-
परिणाम प्रिंट करें
उदाहरण
#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