天天看点

一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的,请找出这个数字

一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的,请找出这个数字

位运算

将这组数据放进数组中,遍历所有元素,并将所有元素异或(^)一遍,最终得到的数字就是只出现一次的那个数字。

#include<stdio.h>
#include<stdlib.h>
int main(){
	int i;
	int ret = 0;//给ret赋初值为0,是因为0与任何数字异或得到的都是它本身。以0开始与数组中的元素异或对最终的结果不会有影响。
	int arr[9] = {2,3,6,5,3,2,6,7,5};
	for (i = 0; i < 9; i++){
		ret ^= arr[i];
	}
	printf("%d\n", ret);
	system("pause");
	return 0;
}
           
一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的,请找出这个数字