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

C++에서 동일한 인덱스에 있는 요소를 제외한 배열의 모든 요소를 ​​XOR하여 배열을 구성합니다.

<시간/>

n개의 양의 요소가 있는 배열 A[]가 있다고 가정합니다. B[i]가 A[i]를 제외한 A[]의 모든 요소의 XOR이 되도록 다른 배열 B를 만들어야 합니다. 따라서 A =[2, 1, 5, 9]이면 B =[13, 14, 10, 6]

이를 해결하려면 먼저 A의 모든 요소에 대한 XOR을 찾아 변수 x에 저장한 다음 A[i]의 각 요소에 대해 B[i] =x XOR A[i]

예시

#include <iostream>
using namespace std;
void findXOR(int A[], int n) {
   int x = 0;
   for (int i = 0; i < n; i++)
   x ^= A[i];
   for (int i = 0; i < n; i++)
   A[i] = x ^ A[i];
}
int main() {
   int A[] = {2, 1, 5, 9};
   int n = sizeof(A) / sizeof(A[0]);
   cout << "Actual elements: ";
   for (int i = 0; i < n; i++)
   cout << A[i] << " ";
   cout << endl;
   cout << "After XOR elements: ";
   findXOR(A, n);
   for (int i = 0; i < n; i++)
   cout << A[i] << " ";
}

출력

Actual elements: 2 1 5 9
After XOR elements: 13 14 10 6