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