异或运算:
任何一个数字异或它本身都等于0
如果从头到尾异或数组中的每一个数字,那些出现两次的数字全部在异或中会被抵消,
最终的结果刚好是这个只出现一次的数字
#include<stdio.h>
#include<stdlib.h>
int FindOnce(int arr[],int len) {
int m = arr[0];
for (int i = 1;i < len;i++) {
m ^= arr[i];
}
return m;
}
int main(){
int arr[] = { 1,2,2,3,3,4,1 ,5,5,7,8,7,8,4,9};
int len = sizeof(arr) / sizeof(arr[0]);
printf("%d\n", FindOnce(arr,len));
system("pause");
return 0;
}