C++程式查詢與給定陣列異或和為給定數字k的數字
為了解決一個問題,給定條件下,我們需要找到一個數字,使得該數字與給定陣列的異或和等於k,例如。
Input: arr[] = {1, 2, 3, 4, 5}, k = 10 Output: 11 Explanation: 1 ^ 2 ^ 3 ^ 4 ^ 5 ^ 11 = 10 Input: arr[] = { 12, 23, 34, 56, 78 }, k = 6 Output: 73
在這個程式中,我們將使用異或運算的性質,如果A^B = C,那麼A^C = B,我們將把這個性質應用到這個問題中。
解決方法
在這個方法中,我們將使用上面異或運算子的性質。對於這個問題,我們遍歷陣列,然後如果我們將這個數字與k進行異或運算,那麼結果就是我們的答案。
示例
上述方法的C++程式碼
#include <bits/stdc++.h> using namespace std; int main(){ int arr[] = { 1, 2, 3, 4, 5 }; // given array int n = sizeof(arr) / sizeof(int); // size of our array int k = 10; // given k int answer = 0; for(int i = 0; i < n; i++) // traversing the array for // xor sum answer ^= arr[i]; answer ^= k; // XORing with k to get our answer cout << answer << "\n"; // printing our answer return 0; }
輸出
11
上述方法的解釋
在這個方法中,我們將使用異或運算子的一些性質,因此,我們將簡單地遍歷陣列,然後找到整個陣列的異或和,然後我們將該異或和與k進行異或運算,得到答案,然後列印我們的答案。
結論
在本教程中,我們解決了查詢與給定陣列異或和為給定數字k的數字的問題。我們還學習了這個問題的C++程式和完整的解決方法(常規方法)。我們可以用其他語言(如C、Java、Python和其他語言)編寫相同的程式。希望本教程對您有所幫助。
廣告