इस समस्या में, हमें n तत्वों की एक सरणी दी गई है। हमारा कार्य आकार n*n का एक क्रम उत्पन्न करना है जिसके तत्व A के सभी तत्वों के एक युग्म का योग स्वयं के साथ हैं। और गठित इस योग सरणी के xor तत्वों को प्रिंट करें।
समस्या को समझने के लिए एक उदाहरण लेते हैं,
इनपुट -ए (1, 4, 5)
आउटपुट - 0
स्पष्टीकरण -
B (1+1, 1+4, 1+5, 4+1, 4+4, 4+5, 5+1, 5+4, 5+5) B(2,5,6,5,8,9,6,9,10) Xor of all values = 2^5^6^5^8^9^6^9^10 = 0.
इस समस्या को हल करने के लिए, हमें Xor के कुछ गुणों को जानना होगा। समान संख्या वाली संख्या का पहला XOR 0 होता है। अब, नवगठित सरणी में, कई तत्व समान होते हैं, तत्व a[i]+a[j] और a[j]+a[i] समान हैं इसलिए उनके xors 0 होंगे। इसलिए, हमारे पास केवल 2a[i] तत्व बचे हैं, हम सभी a[i] तत्वों का xor लेंगे और इसे इससे गुणा करेंगे। दो। यह हमारा अंतिम उत्तर होगा।
उदाहरण
हमारे एल्गोरिथ्म के कार्यान्वयन को दिखाने के लिए कार्यक्रम
#include <iostream> using namespace std; int findSumXor(int arr[], int n){ int XOR = 0 ; for (int i = 0; i < n; i++) { XOR = XOR ^ arr[i]; } return XOR * 2; } int main(){ int arr[3] = { 2, 4, 7 }; int n = sizeof(arr) / sizeof(arr[0]); cout<<"The xor of the sum pair of elements of the array is\t"<<findSumXor(arr, n); return 0; }
आउटपुट
The xor of the sum pair of elements of the array is 2