Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Chương trình C++ tìm phần tử mảng từ XOR các phần tử liên tiếp

Cho mảng n phần tử nhưng chỉ biết XOR của hai phần tử liên tiếp và phần tử đầu tiên. Mảng gốc a,b,c,d,e,f → mảng cho a^b, b^c, c^d, d^e, e^f.

Vì biết phần tử đầu a, ta tìm b = a ^ arr[0], c = b ^ arr[1], ...

Ví dụ mã nguồn

#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);
}

Kết quả đầu ra

6 10 15 21 18