在 C++ 中使用連續元素異或查詢陣列元素
假設我們必須找到一個由 n 個元素組成的列表。但是,我們有實際陣列中兩個連續元素的 XOR 值。此外,給出了實際陣列的第一個元素。因此,如果陣列元素為 a、b、c、d、e、f,那麼給定的陣列將是 a^b、b^c、c^d、d^e 和 e^f。
由於給出了第一個數字,即 a,因此可以幫助我們找到所有數字。如果我們想要找到實際陣列的第二個元素,那麼我們必須執行 b = a ^ arr[i],對於第二個元素 c = b ^ arr[1],依此類推。
示例
#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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
安卓
Python
C 程式設計
C++
C#
MongoDB
MySQL
JavaScript
PHP