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 和其他语言)编写相同的程序。我们希望您觉得本教程有用。


相关文章