Để giải quyết một vấn đề trong đó, đã cho, chúng tôi có nhiệm vụ tìm số sao cho tổng XOR của một mảng nhất định với số đó trở thành bằng k, chẳng hạn.
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
Trong chương trình này, chúng ta sẽ sử dụng thuộc tính xor nếu A ^ B =C và A ^ C =B, và chúng ta sẽ áp dụng điều này trong bài toán này.
Phương pháp tiếp cận để tìm giải pháp
Trong cách tiếp cận này, chúng ta sẽ sử dụng thuộc tính trên của toán tử xor ngay bây giờ. Đối với vấn đề này, bây giờ chúng ta duyệt qua mảng và sau đó nếu chúng ta đặt số với k, đó sẽ là câu trả lời của chúng ta.
Ví dụ
Mã C ++ cho phương pháp tiếp cận trên
#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; }
Đầu ra
11
Giải thích cho Cách tiếp cận Trên
Trong cách tiếp cận này, chúng ta sẽ sử dụng một số thuộc tính của toán tử xor, vì vậy, chúng ta chỉ cần duyệt qua mảng và sau đó tìm tổng xor của toàn bộ mảng, sau đó chúng ta xor rằng tổng xor với k và rằng câu trả lời và sau đó chúng tôi in câu trả lời của mình.
Kết luận
Trong hướng dẫn này, chúng tôi giải quyết việc tìm Số có tổng XOR với một mảng cho trước là một số k cho trước. Chúng tôi cũng đã học chương trình C ++ cho vấn đề này và cách tiếp cận hoàn chỉnh (Bình thường) mà chúng tôi đã giải quyết vấn đề này. Chúng ta có thể viết cùng một chương trình bằng các ngôn ngữ khác như C, java, python và các ngôn ngữ khác. Chúng tôi hy vọng bạn thấy hướng dẫn này hữu ích.