【codingame】【C语言】Clash of Code——查找数列中唯一出现奇数次的数字

115 阅读1分钟

算法思想:通过异或运算来查找唯一出现奇数次的数字。由于任何数与0异或得到它自己,相同的数异或得到0,因此将数组中的所有数字进行异或操作,结果就是唯一出现奇数次的数字。

#include <stdio.h>
int main(){
	int length; //输入要输的数字个数
	int result=0;
	scanf("%d",&length);
	for(int i=0;i<length;i++){
		int num;
		scanf("%d",&num);
		result^=num; //将输入的数字循环进行异或操作,最后剩下的数就是唯一出现奇数次的数字
	}
	
	printf("%d",result);
	return 0;
} 

示例1:

3
2 2 2
2

示例2:

5
1 2 2 3 3
1

示例3:

3
1 2 3
0