Giả sử chúng ta có một mảng A [] với n phần tử dương. Chúng ta phải tạo một mảng B khác, sao cho B [i] là XOR của tất cả các phần tử của A [] ngoại trừ A [i]. Vì vậy, nếu A =[2, 1, 5, 9] thì B =[13, 14, 10, 6]
Để giải quyết điều này, đầu tiên chúng ta phải tìm XOR của tất cả các phần tử của A và lưu nó vào biến x, sau đó với mỗi phần tử của A [i], tìm B [i] =x XOR A [i]
Ví dụ
#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] << " "; }
Đầu ra
Actual elements: 2 1 5 9 After XOR elements: 13 14 10 6