阅读 104

查找与给定数组的异或和是给定数字 k 的数字的 C++ 程序

例如,为了解决给定的问题,我们的任务是找到一个数字,使给定数组与该数字的 XOR 和等于 k。


Input: arr[] = {1, 2, 3, 4, 5}, k = 10Output: 11Explanation: 1 ^ 2 ^ 3 ^ 4 ^ 5 ^ 11 = 10Input: arr[] = { 12, 23, 34, 56, 78 }, k = 6Output: 73


在这个程序中,我们将使用 xor 的性质,如果 A^B = C 和 A^C = B,我们将把它应用到这个问题中。

寻找解决方案的方法

在这种方法中,我们现在将使用 xor 运算符的上述属性。对于这个问题,现在我们遍历数组,然后如果我们将数字与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++) // 遍历数组       // 异或和       answer ^= arr[i];

    answer ^= k; // 与 k 异或得到我们的答案    cout << answer << "\n"; // 打印我们的答案    return 0;
}

输出结果

11


上述方法的说明

在这种方法中,我们将使用 xor 运算符的某些属性,因此,为此,我们只需遍历数组,然后找到整个数组的 xor 和,然后将该 xor 和与 k 进行异或,然后answer 然后我们打印我们的答案。

结论

在本教程中,我们解决了找到与给定数组的异或和为给定数字 k 的数字。我们还学习了针对此问题的 C++ 程序以及解决此问题的完整方法(Normal)。我们可以用其他语言编写相同的程序,例如 C、java、python 和其他语言。我们希望本教程对您有所帮助。


文章分类
百科问答
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐