题目描述:
现给你一组数,要求你找出其中只出现过一次的那个数。题目保证只有一个数字出现过一次,并且除了只出现一次的那个数字外,其余的数字均出现了偶数次。
输入格式:
输入包含多组测试样例。每组样例第一行为一个正整数n(1<=n<=1000000,并且n为奇数),表示数字的个数。
接下来的一行为n个正整数,所有的数都小于2^31。
当n=0时,输入结束。
输出格式:
输出只出现过一次的那个数字,每组结果占一行。
样例输入:
5 1 1 3 2 2 3 1 2 1 0
样例输出:
3 2
提示:
可以使用异或运算,^
异或简介:
按二进制位一位位运算,相同为0,相异为1。
x ^ x = 0,如 8 ^ 8的值是0。
时间限制: 1000ms
空间限制: 32MB
这道题纯纯考察位运算的性质
代码实现:
#include<bits/stdc++.h>
using namespace std;
long long n,a,s;
int main(){
while(cin>>n){
if(n==0){
break;
}
for(int i=1;i<=n;i++){
cin>>a;
s=s^a;
}
cout<<s<<endl;
}
return 0;
}