编程实现:
一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的。
请找出这个数字。(使用位运算)
首先要了解:一个数与自己异或等于0 (a^a=0)
与0异或等于它自己(b^0=b)
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int find(int* arr1,int len)
{
int i=0;
int key=0;
for(i=0;i<len;i++)
{
key^=*arr1;
arr1++;
}
return key;
}
int main()
{
int arr[]={1,2,3,4,3,2,1};
int sz=sizeof(arr)/sizeof(arr[0]);
printf("%d\n",find(arr,sz));
system("pause");
return 0;
}