n개의 요소 목록을 찾아야 한다고 생각해 보십시오. 그러나 실제 배열의 두 연속 요소에 대한 XOR 값이 있습니다. 또한 실제의 첫 번째 요소가 제공됩니다. 따라서 배열 요소가 a, b, c, d, e, f이면 주어진 배열은 a^b, b^c, c^d, d^e 및 e^f가 됩니다.
첫 번째 숫자가 주어지면 모든 숫자를 찾는 데 도움이 될 수 있습니다. 실제 배열의 두 번째 요소를 찾으려면 두 번째 요소 c =b ^ arr[1]에 대해 b =a ^ arr[i] 등을 수행해야 합니다.
예
#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);
} 출력
6 10 15 21 18