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和其他語言)編寫相同的程式。希望本教程對您有所幫助。
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP