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