मान लीजिए हमें n तत्वों की सूची ढूंढनी है। लेकिन हमारे पास वास्तविक सरणी के दो लगातार तत्वों का XOR मान है। साथ ही वास्तविक सरणी का पहला तत्व दिया गया है। यदि सरणी के तत्व a, b, c, d, e, f हैं, तो दी गई सरणी a^b, b^c, c^d, d^e, e^f होगी।
चूंकि पहला नंबर a दिया गया है, इससे हम सभी नंबर ढूंढ सकते हैं। यदि हमें वास्तविक सरणी का दूसरा तत्व ढूंढना है, तो b = a ^ arr[0] करें, तीसरे के लिए c = b ^ arr[1] और इसी तरह।
C++ उदाहरण
#include <iostream>
using namespace std;
void findActualElements(int a, int arr[], int n) {
int actual[n + 1];
actual[0] = a;
for (int i = 0; i < n; i++) {
actual[i + 1] = arr[i] ^ actual[i];
}
for (int i = 0; i < n + 1; i++)
cout << actual[i] << " ";
}
int main() {
int arr[] = {12, 5, 26, 7};
int n = sizeof(arr) / sizeof(arr[0]);
int a = 6;
findActualElements(a, arr, n);
return 0;
}
आउटपुट
6 10 15 21 18