Wednesday, July 3, 2024
HomeData ModellingData Structure & AlgorithmNumber whose XOR sum with given array is a given number k

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

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 

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

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

Feeling lost in the world of random DSA topics, wasting time without progress? It’s time for a change! Join our DSA course, where we’ll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!

Thapelo Manthata
I’m a desktop support specialist transitioning into a SharePoint developer role by day and Software Engineering student by night. My superpowers include customer service, coding, the Microsoft office 365 suite including SharePoint and power platform.
RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments