Open In App

Check if Sum and XOR of all elements of array is equal

Improve
Improve
Like Article
Like
Save
Share
Report

Given an array arr[], the task is to check if sum of all elements of an array is equal to XOR of all elements of array. 
Example: 
 

Input: arr[] = [1, 2] 
Output: YES 
Explanation: 
Sum = (1+2) = 3 
XOR = (1^2) = 3

Input: arr[] = [6, 3, 7, 10] 
Output: NO 
Explanation: 
Sum = (6 + 3 + 7 + 10) = 26 
XOR = (6 ^ 3 ^ 7 ^ 10) = 8 
 

 

Approach: 
 

  1. Iterate over the Array and find sum of all elements.
  2. Similarly, XOR all the elements of the array.
  3. Check if sum and xor value is equal.

Below is the implementation of the above approach: 
 

C++




// C++ Implementation to Check
// if Sum and XOR of all Elements
// of Array is equal
#include <iostream>
using namespace std;
 
// Function to Check if Sum and XOR
// of all elements of array is equal
int equal_xor_sum(int arr[], int n)
{
    int Sum = 0;
    int Xor = 0;
 
    // Sum and XOR of all elements
    for (int i = 0; i < n; i++) {
        Sum = Sum + arr[i];
        Xor = Xor ^ arr[i];
    }
 
    // Checking Sum and XOR to be equal
    if (Sum == Xor)
        cout << "YES";
    else
        cout << "NO";
 
    return 0;
}
 
// Driver Function
int main()
{
    int arr[] = { 6, 3, 7, 10 };
    int n = sizeof(arr) / sizeof(arr[0]);
 
    // Check Sum and XOR is equal
    equal_xor_sum(arr, n);
 
    return 0;
}


Java




// Java Implementation to Check
// if Sum and XOR of all Elements
// of Array is equal
class GFG
{
     
    // Function to Check if Sum and XOR
    // of all elements of array is equal
    static void equal_xor_sum(int arr[], int n)
    {
        int Sum = 0;
        int Xor = 0;
     
        // Sum and XOR of all elements
        for (int i = 0; i < n; i++)
        {
            Sum = Sum + arr[i];
            Xor = Xor ^ arr[i];
        }
     
        // Checking Sum and XOR to be equal
        if (Sum == Xor)
            System.out.println("YES");
        else
            System.out.println("NO");
 
    }
     
    // Driver Function
    public static void main (String[] args)
    {
        int arr[] = { 6, 3, 7, 10 };
        int n = arr.length;
     
        // Check Sum and XOR is equal
        equal_xor_sum(arr, n);
    }
}
 
// This code is contributed by AnkitRai01


Python3




# Python3 Implementation to Check
# if Sum and XOR of all Elements
# of Array is equal
 
# Function to Check if Sum and XOR
# of all elements of array is equal
def equal_xor_sum(arr, n) :
 
    Sum = 0;
    Xor = 0;
 
    # Sum and XOR of all elements
    for i in range(n) :
        Sum = Sum + arr[i];
        Xor = Xor ^ arr[i];
 
    # Checking Sum and XOR to be equal
    if (Sum == Xor) :
        print("YES");
    else :
        print("NO");
 
# Driver Function
if __name__ == "__main__" :
 
    arr = [ 6, 3, 7, 10 ];
    n = len(arr);
 
    # Check Sum and XOR is equal
    equal_xor_sum(arr, n);
 
# This code is contributed by AnkitRai01


C#




// C# Implementation to Check
// if Sum and XOR of all Elements
// of Array is equal
using System;
 
class GFG
{
     
    // Function to Check if Sum and XOR
    // of all elements of array is equal
    static void equal_xor_sum(int []arr, int n)
    {
        int Sum = 0;
        int Xor = 0;
     
        // Sum and XOR of all elements
        for (int i = 0; i < n; i++)
        {
            Sum = Sum + arr[i];
            Xor = Xor ^ arr[i];
        }
     
        // Checking Sum and XOR to be equal
        if (Sum == Xor)
            Console.WriteLine("YES");
        else
            Console.WriteLine("NO");
 
    }
     
    // Driver Function
    public static void Main()
    {
        int []arr = { 6, 3, 7, 10 };
        int n = arr.Length;
     
        // Check Sum and XOR is equal
        equal_xor_sum(arr, n);
    }
}
 
// This code is contributed by AnkitRai01


Javascript




<script>
 
// JavaScript Implementation to Check
// if Sum and XOR of all Elements
// of Array is equal
 
 
// Function to Check if Sum and XOR
// of all elements of array is equal
function equal_xor_sum(arr, n)
{
    let Sum = 0;
    let Xor = 0;
 
    // Sum and XOR of all elements
    for (let i = 0; i < n; i++) {
        Sum = Sum + arr[i];
        Xor = Xor ^ arr[i];
    }
 
    // Checking Sum and XOR to be equal
    if (Sum === Xor)
        document.write("YES");
    else
        document.write("NO");
 
}
 
// Driver Function
 
    let arr = [ 6, 3, 7, 10 ];
    let n = arr.length;
 
    // Check Sum and XOR is equal
    equal_xor_sum(arr, n);
 
// This code is contributed by Surbhi Tyagi.
 
</script>


Output: 

NO

 

Time Complexity: O(n)
Auxiliary Space: O(1) because it is using constant space for variables
 



Last Updated : 21 Sep, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads