给你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;
}