C++ 程序查找与给定数组异或和为给定数字 k 的数字
c++server side programmingprogramming
为了解决给定问题,我们需要找到一个数字,使得给定数组与该数字的异或和等于 k,例如。
输入:arr[] = {1, 2, 3, 4, 5}, k = 10 输出:11 解释:1 ^ 2 ^ 3 ^ 4 ^ 5 ^ 11 = 10 输入:arr[] = { 12, 23, 34, 56, 78 }, k = 6 输出: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 }; // 给定数组 int n = sizeof(arr) / sizeof(int); // 我们数组的大小 int k = 10; // 给定 k int answer = 0; for(int i = 0; i < n; i++) // 遍历数组 for // 异或和 answer ^= arr[i]; answer ^= k; // 与 k 进行异或得到答案 cout << answer << &"\n&"; // 打印答案 return 0; }
输出
11
上述方法的解释
在这种方法中,我们将使用 xor 运算符的一些属性,因此,我们只需遍历数组,然后找到整个数组的 xor 和,然后将该 xor 和与 k 和该答案进行 xor 运算,然后打印答案。
结论
在本教程中,我们解决了查找与给定数组的 XOR 和为给定数字 k 的数字。我们还学习了这个问题的 C++ 程序以及我们解决这个问题的完整方法(正常)。我们可以用其他语言(如 C、java、python 和其他语言)编写相同的程序。我们希望您觉得本教程有用。