# Given a set, find XOR of the XOR’s of all subsets.

• Difficulty Level : Easy
• Last Updated : 25 Mar, 2022

The question is to find XOR of the XOR’s of all subsets. i.e if the set is {1,2,3}. All subsets are : [{1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3}]. Find the XOR of each of the subset and then find the XOR of every subset result.
We strongly recommend you to minimize your browser and try this yourself first.
This is a very simple question to solve if we get the first step (and only step) right. The solution is XOR is always 0 when n > 1 and Set when n is 1.

## C++

 `// C++ program to find XOR of XOR's of all subsets``#include ``using` `namespace` `std;` `// Returns XOR of all XOR's of given subset``int` `findXOR(``int` `Set[], ``int` `n)``{``    ``// XOR is 1 only when n is 1, else 0``    ``if` `(n == 1)``        ``return` `Set;``    ``else``        ``return` `0;``}` `// Driver program``int` `main()``{``    ``int` `Set[] = { 1, 2, 3 };``    ``int` `n = ``sizeof``(Set) / ``sizeof``(Set);``    ``cout << ``"XOR of XOR's of all subsets is "``         ``<< findXOR(Set, n);``    ``return` `0;``}`

## C

 `// C program to find the XOR of XORs of all subsets``#include ` `// Returns XOR of all XORs of given subset``int` `findXOR(``int` `Set[], ``int` `n)``{``  ``// XOR is 1 only when n is 1, else 0``  ``if` `(n == 1)``    ``return` `Set;``  ``else``    ``return` `0;``}` `// Driver program``int` `main()``{``  ``int` `Set[] = { 1, 2, 3 };``  ``int` `n = ``sizeof``(Set) / ``sizeof``(Set);``  ``printf``(``"XOR of XORs of all subsets is %d\n"``, findXOR(Set, n));``  ``return` `0;``}` `// This code is contributed by phalashi.`

## Java

 `// Java program to find XOR of``// XOR's of all subsets``import` `java.util.*;` `class` `GFG {` `    ``// Returns XOR of all XOR's of given subset``    ``static` `int` `findXOR(``int` `Set[], ``int` `n)``    ``{` `        ``// XOR is 1 only when n is 1, else 0``        ``if` `(n == ``1``)``            ``return` `Set[``0``];``        ``else``            ``return` `0``;``    ``}` `    ``// Driver code``    ``public` `static` `void` `main(String arg[])``    ``{``        ``int` `Set[] = { ``1``, ``2``, ``3` `};``        ``int` `n = Set.length;``        ``System.out.print(``"XOR of XOR's of all subsets is "``                         ``+ findXOR(Set, n));``    ``}``}` `// This code is contributed by Anant Agarwal.`

## Python3

 `# Python program to find``# XOR of XOR's of all subsets` `# Returns XOR of all``# XOR's of given subset`  `def` `findXOR(``Set``, n):` `    ``# XOR is 1 only when``    ``# n is 1, else 0``    ``if` `(n ``=``=` `1``):``        ``return` `Set``[``0``]``    ``else``:``        ``return` `0` `# Driver code`  `Set` `=` `[``1``, ``2``, ``3``]``n ``=` `len``(``Set``)` `print``(``"XOR of XOR's of all subsets is "``,``      ``findXOR(``Set``, n))` `# This code is contributed``# by Anant Agarwal.`

## C#

 `// C# program to find XOR of``// XOR's of all subsets``using` `System;` `class` `GFG {` `    ``// Returns XOR of all``    ``// XOR's of given subset``    ``static` `int` `findXOR(``int``[] Set, ``int` `n)``    ``{` `        ``// XOR is 1 only when n``        ``// is 1, else 0``        ``if` `(n == 1)``            ``return` `Set;``        ``else``            ``return` `0;``    ``}` `    ``// Driver code``    ``public` `static` `void` `Main()``    ``{``        ``int``[] Set = { 1, 2, 3 };``        ``int` `n = Set.Length;``        ``Console.Write(``"XOR of XOR's of all subsets is "``                      ``+ findXOR(Set, n));``    ``}``}` `// This code is contributed by nitin mittal`

## PHP

 ``

## Javascript

 ``

Output:

`XOR of XOR's of all subsets is 0`

Time Complexity: O(1)

Auxiliary Space: O(1)

Related Problem :
Sum of XOR of all possible subsets
How does this work?
The logic goes simple. Let us consider n’th element, it can be included in all subsets of remaining (n-1) elements. The number of subsets for (n-1) elements is equal to 2(n-1) which is always even when n>1. Thus, in the XOR result, every element is included even number of times and XOR of even occurrences of any number is 0.