# Number whose XOR sum with given array is a given number k

• Difficulty Level : Basic
• Last Updated : 19 Apr, 2021

Given an array of N numbers and a number K. The task is to insert a number in the given array such that the bitwise XOR of all the elements in the new array equals the given input K.
Examples:

```Input:
a = {1, 2, 3, 4, 5}, k = 10
Output: 11
Explanation: 1 ^ 2 ^ 3 ^ 4 ^ 5 ^ 11 = 10

Input: A[] = { 12, 23, 34, 56, 78 }, k = 6
Output: 73 ```

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.

Approach: The basic idea is to use the simple XOR property, i.e. if X ^ Y = Z then X ^ Z = Y. Let’s suppose the number to be inserted in array be X such that (A[0] ^ A[1] ^ … ^ A[n – 1]) ^ X = k. Thus, to find X we can use the relation (A[0] ^ A[1] ^ … ^ A[n – 1]) ^ k = X.
Below is the implementation of above approach.

## C++

 `// CPP Program to find the number``// whose XOR sum with given array is``// equal to a given number k``#include ``using` `namespace` `std;` `// This function returns the number to``// be inserted in the given array``int` `findEletobeInserted(``int` `A[], ``int` `n, ``int` `k)``{``    ``// initialise the answer with k``    ``int` `ans = k;``    ``for` `(``int` `i = 0; i < n; i++)``        ``ans ^= A[i]; ``// XOR of all elements in the array``    ``return` `ans;``}` `// Driver Code to test above function``int` `main()``{``    ``int` `A[] = { 1, 2, 3, 4, 5 };``    ``int` `n = ``sizeof``(A) / ``sizeof``(A[0]);``    ``int` `k = 10;` `    ``cout << findEletobeInserted(A, n, k)``         ``<< ``" has to be inserted"``         ``" in the given array to make xor sum of "``         ``<< k << endl;` `    ``return` `0;``}`

## Java

 `// Java Program to find the number``// whose XOR sum with given array is``// equal to a given number k``import` `java.io.*;` `class` `GFG {` `    ``// This function returns the number to``    ``// be inserted in the given array``    ``static` `int` `findEletobeInserted(``int` `A[],``                              ``int` `n, ``int` `k)``    ``{``        ` `        ``// initialise the answer with k``        ``int` `ans = k;``        ``for` `(``int` `i = ``0``; i < n; i++)``        ` `            ``// XOR of all elements in``            ``// the array``            ``ans ^= A[i];``        ``return` `ans;``    ``}``    ` `    ``// Driver Code to test above function``    ``public` `static` `void` `main (String[] args)``    ``{``        ``int` `A[] = { ``1``, ``2``, ``3``, ``4``, ``5` `};``        ``int` `n =A.length;``        ``int` `k = ``10``;``    ` `        ``System.out.println(``             ``findEletobeInserted(A, n, k)``              ``+ ``" has to be inserted in "``              ``+ ``"the given array to make"``                   ``+ ``" xor sum of "` `+ k);``    ``}``}` `// This code is contributed by anuj_67.`

## Python3

 `# Python 3 Program to find the number``# whose XOR sum with given array is``# equal to a given number k` `# This function returns the number to``# be inserted in the given array``def` `findEletobeInserted(A, n, k):``    ` `    ``# initialise the answer with k``    ``ans ``=` `k``    ``for` `i ``in` `range``(n):``        ``ans ^``=` `A[i] ``# XOR of all elements``                    ``# in the array``    ``return` `ans` `# Driver Code``if` `__name__ ``=``=` `'__main__'``:``    ``A ``=` `[``1``, ``2``, ``3``, ``4``, ``5``]``    ``n ``=` `len``(A)``    ``k ``=` `10``    ` `    ``print``(findEletobeInserted(A, n, k),``          ``"has to be inserted in the given"``,``          ``"array to make xor sum of"``, k)` `# This code is contributed by``# Surendra_Gangwar`

## C#

 `// C# Program to find the number``// whose XOR sum with given array is``// equal to a given number k``using` `System ;` `class` `GFG {` `    ``// This function returns the number to``    ``// be inserted in the given array``    ``static` `int` `findEletobeInserted(``int` `[]A,``                            ``int` `n, ``int` `k)``    ``{``        ` `        ``// initialise the answer with k``        ``int` `ans = k;``        ``for` `(``int` `i = 0; i < n; i++)``        ` `            ``// XOR of all elements in``            ``// the array``            ``ans ^= A[i];``        ``return` `ans;``    ``}``    ` `    ``// Driver Code to test above function``    ``public` `static` `void` `Main ()``    ``{``        ``int` `[]A = { 1, 2, 3, 4, 5 };``        ``int` `n =A.Length;``        ``int` `k = 10;``    ` `        ``Console.WriteLine(``            ``findEletobeInserted(A, n, k)``            ``+ ``" has to be inserted in "``            ``+ ``"the given array to make"``                ``+ ``" xor sum of "` `+ k);``    ``}``}` `// This code is contributed by anuj_67.`

## PHP

 ``

## Javascript

 ``

Output :

`11 has to be inserted in the given array to make xor sum of 10`

My Personal Notes arrow_drop_up