Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 연속 요소의 XOR을 사용하여 배열 요소 찾기

<시간/>

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