1.编程实现:
一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的。
请找出这个数字。(使用位运算)
2、程序:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int find1(int *arr, int sz)
{
int ret=0;//0和任何数异或位为任何数
for (int i = 0; i < sz; i++)
{
ret ^= arr[i];
//异或位运算可以帮助查找出一组数据中的不同数据
}
return ret;
}
int main()
{
int arr[5] = { 1, 2, 3, 1, 2 };
int sz = sizeof(arr) / sizeof(arr[0]);
printf("%d\n", find1(arr, sz));
system("pause");
return 0;
}
3、结果