1003: FFF团的情侣活动--课程作业--找出N个数字中唯一出现奇数次的数

 

1003: FFF团的情侣活动

Time Limit: 1 Sec  Memory Limit: 2 MB

Description

圣诞节快到了,Water作为大FFF团团长,组织许多对情侣进行电影院隔位坐,双人套餐打十一折等积极向上的活动。

Water会给每个人编号,情侣两人的号码是一样的。丧心病狂却又单身的Water把自己也算了进去,最后却把自己的编号忘记了。


Water手上现在只有一份乱了的号码单(包括Water的号码),他又过来死皮赖脸的求你帮他把号码找出来。

Input

一组数据。

第一行为 整数N (0<N<=1000000)

接下来N行 每行为一个整数。

Output

一行,Water的号码。

Sample Input

5
3
2
4
2
3

Sample Output

4

HINT

 

Sample解释:由于情侣间的号码是一样的,所以孤独的4就是Water的号码了!注意,也有可能是如下情况:


3 2 2 2 3


由于2有三个,其中两个是一对情侣,剩下那个号码2就是Water的啦!


情侣的号码也可重复。

 

这里我们用到异或的一个性质:A xor A = 0,也就是说异或同一个数偶数次,结果不变。

     这样我们只需要按顺序把所有的数依次异或一遍,剩下的就是唯一出现奇数次的那个数了。

然后,这里还要注意一下内存的问题,因为只有2m,所以不能开一个很大的数组来遍历,直接读入一个异或一次就好了;

 1 #include <stdio.h>
 2  
 3 int main()
 4 {
 5     int i, n;
 6     int val = 0;
 7     scanf("%d", &n);
 8     int a;
 9     for (i = 0; i < n; i++) {
10         scanf("%d", &a);
11         val ^= a;
12     }
13 
14     printf("%d\n", val);
15     return 0;
16 }

 

posted @ 2013-12-03 17:38  厕所门口~~  阅读(414)  评论(2编辑  收藏  举报