Mr.王博士制造了n种机器人,有一天他又发明了一种复制药水,可以把每个机器人再复制一遍,得到一个相同的机器人,于是,在一个风和日丽的上午,他把n个机器人拿出来,将一大桶复制药水泼向所有的机器人,瞬间每一个机器人就变成了两个相同的机器人,可是,有一个编号为x的机器人,他想做独一无二的机器人,不想被复制,于是,它灵活地躲开了所有的药水。王博士知道后很生气,想要找出这个机器人,可是这些机器人外表都差不多,唯一可以辨认的就是它们的编号,每一种机器人的编号是不一样的,复制出来的机器人编号和原来的是一样的,你能帮助博士找出这个机器人吗?
有多组数据.每一组数据第一行给出机器人的种数n,第二行有2*n-1个数字,表示复制出来的机器人的编号,编号没有顺序。
对于每一组数据,答案输出一行,为要找的机器人的编号
数据范围 n大于等于1且小于100000,机器人的编号大于等于0且小于2^31,保证不同种类的机器人编号不一样,且只有一个机器人的编号只出现一次。
1 #include<iostream>
2 #include<string>
3
4 using namespace std;
5
6 int judge(int n,int num[])
7 {
8 int result = num[0];
9 if (n == 1) return result;
10 for (int i = 1; i < 2*n-1; i++)
11 result ^= num[i]; //^=是C/C++的一个符合运算符。表示异或赋值 异或就是两个数的二进制形式,按位对比,相同取0,不同取一
12 return result;
13 }
14 int main()
15 {
16 int n;
17 while (cin>>n)
18 {
19 int *num = new int[2 * n - 1];//给int型指针num分配2*n-1个空间
20 for (int i = 0; i < 2 * n - 1; i++)
21 cin >> num[i];
22 cout << judge(n, num) << endl;
23 }
24 return 0;
25 }
1 #include<iostream>
2 using namespace std;
3 int main()
4 {
5 int n,i,x,y;
6 while(scanf("%d",&n)!=EOF&&n)
7 {
8 x=0;
9 while(n--)
10 {
11 cin>>y;
12 x^=y;
13 }
14 printf("%d\n",x);
15 }
16 return 0;
17 }