Dada una array de N números y un número K. La tarea es insertar un número en la array dada de modo que el XOR bit a bit de todos los elementos en la nueva array sea igual a la entrada K dada.
Ejemplos:
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
Enfoque: la idea básica es usar la propiedad XOR simple, es decir, si X ^ Y = Z entonces X ^ Z = Y. Supongamos que el número que se insertará en la array sea X tal que (A[0] ^ A[1] ^ … ^ A[n – 1]) ^ X = k. Por lo tanto, para encontrar X podemos usar la relación (A[0] ^ A[1] ^ … ^ A[n – 1]) ^ k = X.
A continuación se muestra la implementación del enfoque anterior.
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>
Producción :
11 has to be inserted in the given array to make xor sum of 10
Publicación traducida automáticamente
Artículo escrito por jaideeppyne1997 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA