# Add an element in Array to make the bitwise XOR as K

• Last Updated : 02 May, 2022

Given an array arr[] containing N positive integers, the task is to add an integer such that the bitwise Xor of the new array becomes K.

Examples:

Input: arr[] = {1, 4, 5, 6}, K = 4
Output: 2
Explanation: Bit-wise XOR of the array is 6.
And bit-wise XOR of 6 and 2 is 4.

Input: arr[] = {2, 7, 9, 1}, K = 5
Output: 8

Approach: The solution to the problem is based on the following idea of bitwise Xor:

If for two numbers X and Y, the bitwise Xor of X and Y is Z then the bitwise Xor of X and Z is Y.

Follow the steps to solve the problem:

• Let the bitwise XOR of the array elements be X
• Say the required value to be added is Y such that X Xor Y = K.
• From the above observation, it is clear that the value to be added (Y) is the same as X Xor K.

Below is the implementation of the above approach:

## C++

 `// C++ code to implement the above approach` `#include ``using` `namespace` `std;` `// Function to find the required value``int` `find_K(``int` `K, vector<``int``>& arr)``{``    ``int` `XOR = 0;` `    ``// Find XOR of all the array elements``    ``for` `(``int` `i = 0; i < arr.size(); i++)``        ``XOR ^= arr[i];` `    ``// K = XOR^N, where N is size of array``    ``return` `XOR ^ K;``}` `// Drivers code``int` `main()``{``    ``int` `K = 4;``    ``vector<``int``> arr = { 1, 4, 5, 6 };` `    ``// Function call``    ``cout << find_K(K, arr);``    ``return` `0;``}`

## Java

 `// Java code to implement the above approach``import` `java.io.*;` `class` `GFG {``    ``// Function to find the required value``    ``public` `static` `int` `find_K(``int` `K, ``int` `arr[])``    ``{``        ``int` `XOR = ``0``;` `        ``// Find XOR of all the array elements``        ``for` `(``int` `i = ``0``; i < arr.length; i++)``            ``XOR ^= arr[i];` `        ``// K = XOR^N, where N is size of array``        ``return` `XOR ^ K;``    ``}` `    ``// Driver Code``    ``public` `static` `void` `main(String[] args)``    ``{``        ``int` `K = ``4``;``        ``int` `arr[] = { ``1``, ``4``, ``5``, ``6` `};` `        ``// Function call``        ``System.out.print(find_K(K, arr));``    ``}``}` `// This code is contributed by Rohit Pradhan`

## Python3

 `# Python code to implement the above approach` `# Function to find the required value``def` `find_K(K, arr):``    ``XOR ``=` `0` `    ``# Find XOR of all the array elements``    ``for` `i ``in` `range``(``len``(arr)):``        ``XOR ^``=` `arr[i]` `    ``# K = XOR^N, where N is size of array``    ``return` `XOR ^ K` `# Drivers code``K ``=` `4``arr ``=` `[ ``1``, ``4``, ``5``, ``6` `]` `# Function call``print``(find_K(K, arr))` `# This code is contributed by shinjanpatra`

## C#

 `// C# code to implement the above approach``using` `System;` `class` `GFG``{` `  ``// Function to find the required value``  ``static` `int` `find_K(``int` `K, ``int``[] arr)``  ``{``    ``int` `XOR = 0;` `    ``// Find XOR of all the array elements``    ``for` `(``int` `i = 0; i < arr.Length; i++)``      ``XOR ^= arr[i];` `    ``// K = XOR^N, where N is size of array``    ``return` `XOR ^ K;``  ``}` `  ``// Driver Code``  ``public` `static` `int` `Main()``  ``{``    ``int` `K = 4;``    ``int``[] arr = ``new` `int``[] { 1, 4, 5, 6 };` `    ``// Function call``    ``Console.Write(find_K(K, arr));``    ``return` `0;``  ``}``}` `// This code is contributed by Taranpreet`

## Javascript

 ``

Output

`2`

Time Complexity: O(N)
Auxiliary Space: O(1)

My Personal Notes arrow_drop_up