주어진 문제를 해결하기 위해, 예를 들어 주어진 숫자와 주어진 배열의 XOR 합이 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인 경우 xor의 속성을 사용하고 이를 이 문제에 적용할 것입니다.
해결책을 찾기 위한 접근 방식
이 접근 방식에서는 이제 위의 xor 연산자 속성을 사용합니다. 이 문제에 대해 이제 배열을 탐색한 다음 k로 숫자를 xor하면 그것이 답이 됩니다.
예시
위 접근 방식에 대한 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
위 접근 방식에 대한 설명
이 접근 방식에서는 xor 연산자의 일부 속성을 사용할 것이므로 이를 위해 단순히 배열을 탐색한 다음 전체 배열의 xor 합을 찾은 다음 해당 xor 합을 k로 xor 답변한 다음 답변을 인쇄합니다.
결론
이 튜토리얼에서는 주어진 배열과의 XOR 합이 주어진 숫자 k인 숫자를 찾는 문제를 해결합니다. 우리는 또한 이 문제에 대한 C++ 프로그램과 이 문제를 해결하는 완전한 접근 방식(Normal)을 배웠습니다. C, Java, python 및 기타 언어와 같은 다른 언어로 동일한 프로그램을 작성할 수 있습니다. 이 튜토리얼이 도움이 되기를 바랍니다.