问题描述
读入n个数。找出唯一一个出现了奇数次的数。
读入格式
第一行一个数n。
接下来n行每行一个数。
保证只有一个出现了奇数次的数。
输出格式
一行一个数表示所求的数。
样例输入
13
537
295
210
413
413
210
413
210
413
210
537
537
537
样例输出
295
数据规模和约定
对于30%的数据,n≤1030。
对于100%的数据,n≤2000001,所有输入的数字都能使用32位长整形存储。
题解
#include<iostream>
#include<cstdio>
#include<string>
using namespace std;
int main()
{
int n;
cin>>n;
int ans=0;
for(int i=0;i<n;i++)
{
int temp;
cin>>temp;
ans^=temp;
}
cout<<ans;
}
一道典型的使用位运算的题目
对于任意一个数a,a^a = 0,a^0 = a,将所有元素进行异或,那么出现次数为偶数的元素异或 后变成0,出现次数为奇数的元素异或后得到元素本身