Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

주어진 배열의 XOR 합이 주어진 숫자 k인 숫자를 찾는 C++ 프로그램

<시간/>

주어진 문제를 해결하기 위해, 예를 들어 주어진 숫자와 주어진 배열의 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 및 기타 언어와 같은 다른 언어로 동일한 프로그램을 작성할 수 있습니다. 이 튜토리얼이 도움이 되기를 바랍니다.