Another puzzle that can be solved with eXclusive OR operator is to find the number that occurs odd number of times. The basic principle that XOR with the number itself x^x=0 results zero will solve this algorithmic puzzle.

# Simple Algorithm to solve the puzzle

Below are the algorithmic steps for “**Finding the number that occurs odd number of times**”

- Have your numbers in array.
- Initialize the invariant x to zero.
- Loop through array elements and XOR with number x which is initialized to zero.
- All even set of numbers will be cleared out by XOR operation, the one repeating odd number of times will come out.

# Implementation in Java

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
package org.j2eedev.algorithmicpuzzles; public class FindNumberOccuringOddNoOfTimes { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub /** * Finding element that occurs odd no.of times, the remaining elements are repeating even no.of times. * x^x=0 */ int[] arr={1,2,3,2,3,1,3}; int x=0; for(int i=0;i<arr.length;i++){ x=x^arr[i]; System.out.println(x); } System.out.println("Result"+x); } } |

# Output:

3