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

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[0] when n is 1.

## C++

`// C++ program to find XOR of XOR's of all subsets ` `#include <bits/stdc++.h> ` `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[0]; ` ` ` `else` ` ` `return` `0; ` `} ` ` ` `// Driver program ` `int` `main() ` `{ ` ` ` `int` `Set[] = {1, 2, 3}; ` ` ` `int` `n = ` `sizeof` `(Set)/` `sizeof` `(Set[0]); ` ` ` `cout << ` `"XOR of XOR's of all subsets is "` ` ` `<< findXOR(Set, n); ` ` ` `return` `0; ` `} ` |

*chevron_right*

*filter_none*

## 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. ` |

*chevron_right*

*filter_none*

## 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. ` |

*chevron_right*

*filter_none*

## 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[0]; ` ` ` `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 ` |

*chevron_right*

*filter_none*

## PHP

`<?php ` `// PHP program to find XOR ` `// of XOR's of all subsets ` ` ` `// Returns XOR of all ` `// XOR's of given subset ` `function` `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` `= ` `array` `(1, 2, 3); ` ` ` `$n` `= ` `count` `(` `$Set` `); ` ` ` `echo` `"XOR of XOR's of all subsets is "` ` ` `, findXOR(` `$Set` `, ` `$n` `); ` ` ` `// This code is contributed by anuj_67. ` `?> ` |

*chevron_right*

*filter_none*

Output:

XOR of XOR's of all subsets is 0

**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.

This article is contributed by **Ekta Goel**. Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above

GeeksforGeeks has prepared a complete interview preparation course with premium videos, theory, practice problems, TA support and many more features. Please refer Placement 100 for details

## Recommended Posts:

- Sum of XOR of all possible subsets
- Sum of bitwise OR of all possible subsets of given set
- Sum of bitwise AND of all possible subsets of given set
- Count no. of ordered subsets having a particular XOR value
- Count number of subsets having a particular XOR value
- Printing all subsets of {1,2,3,...n} without using array or loop
- Subset array sum by generating all the subsets
- Number of subsets with same AND, OR and XOR values in an Array
- Count number of distinct sum subsets within given range
- Split a binary string into K subsets minimizing sum of products of occurrences of 0 and 1
- Find Kth smallest value for b such that a + b = a | b
- Find two numbers from their sum and XOR
- Find two integers A and B such that A ^ N = A + N and B ^ N = B + N
- Find the value of N XOR'ed to itself K times
- Find position of the only set bit