woj1202-找出奇数个数中唯一单个的数

给你2*n+1个数,其中n对是一样的,找出单出来的那一个。

看到这个题,容易想到最简单的方法是排序,然后找出单着的那个。但是排序还是比较耗时的算法,可以采用简单的算法-与0进行异或,那么最后留下就是单一的那个数。

代码如下:

#include<stdio.h>
#include<stdlib.h>

int main(void){
	int n,t,i,k=0;
	scanf("%d",&n);
	for(i=0;i<2*n+1;i++){
		scanf("%d",&t);
		k=k^t;
		}
	printf("%d",k);
	system("pause\n");
	return 0;
	}

   

你可能感兴趣的:(异或,C语言编程)