异或运算的应用
题目:一个数组中有一种数出现了奇数次,其他数出现了偶数次,怎么在数组中找到这个给数并且打印;
分析:这种利用异或运算的0 ^ N = N,N ^ N = 0,和异或运算的交换律一下子就可以找出那个出现奇数次的数并打印
// 一个数组中有一种数出现了奇数次,其他数出现偶数次,
// 怎么在数组中找到这个数并打印
public class OddEvenExistNumber {
public static void main(String[] args) {
int[] arr = {3,2,4,4,2,3,3};
int flag=0;
for(int i=0;i<arr.length;i++){
//异或运算奇数个相同数异或为本身,偶数个相同数异或为0。而0异或任何数为任何数;
flag^=arr[i];
}
System.out.println(flag);
}
}