Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

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 <bits/stdc++.h>
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




<?php
// PHP 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
function findEletobeInserted($A, $n, $k)
{
    // initialise the answer with k
    $ans = $k;
    for ( $i = 0; $i < $n; $i++)
     
        // XOR of all elements
        // in the array
        $ans ^= $A[$i];
    return $ans;
}
 
    // Driver Code
    $A = array(1, 2, 3, 4, 5);
    $n = count($A);
    $k = 10;
 
    echo findEletobeInserted($A, $n, $k) ;
    echo " has to be inserted";
    echo " in the given array to make xor sum of ";
    echo $k , "\n";
 
// This code is contributed by anuj_67.
?>

Javascript




<script>
 
// Javascript 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
function findEletobeInserted(A, n, k)
{
     
    // initialise the answer with k
    var ans = k;
    for(var i = 0; i < n; i++)
     
        // XOR of all elements in
        // the array
        ans ^= A[i];
         
    return ans;
}
// Driver Code
var A = [ 1, 2, 3, 4, 5 ];
var n = A.length;
var k = 10;
 
document.write(findEletobeInserted(A, n, k) +
               " has to be inserted in " +
               "the given array to make" +
               " xor sum of " + k);
 
// This code is contributed by Khushboogoyal499
 
</script>

Output : 

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

 




My Personal Notes arrow_drop_up
Recommended Articles
Page :