Find a number
时间限制: 5 Sec 内存限制: 2 MB提交: 98 解决: 16
[ 提交][ 状态][ 讨论版]
题目描述
Find a number which is repeated odd times, then You should output the number.
Example 1:
if input is:12 12 12 12 15
then output is: 15
Example 2:
if input is:12 13 12 13 18 12 13 13 18
then output is: 12
输入
First line contains a positive integer N < 500000 ,then, N positive integers follow (delimited with space) each less than 1 000 000.
输出
In input sequence only one number X is repeated odd times. Others have even number of occurrences. You should output X.
样例输入
9
3 1 2 2 17 1 3 17 3
3 1 2 2 17 1 3 17 3
样例输出
3
提示
If you can avoid error "Memory Limit Exceed", this problem will be a very simple problem.
这个题的亮点在于异或的运用
一个数a两次异或同一个数,等于原来的数a。
#include<iostream>
using namespace std;
int main()
{
int n;
while(cin>>n)
{
int tmp;
int s=0;
while(n--)
{
cin>>tmp;
s^=tmp;
}
cout<<s<<endl;
}
return 0;
}