题目给的空间限制是4MB,因此不能开大数组来存储。这个题目需要用到异或的知识。
根据异或的性质:
1、任何数与0异或都是它本身
2、k个相同的数的异或和,当k为奇数时,结果是这个数本身,否则结果是0
题目需要求n个数中出现奇数次的那个数,将所有数进行异或,最后异或得到的结果就是出现奇数次的那个数。(^按位异或运算符)
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
int ans=0;
int a;
for(int i=0;i<n;i++)
{
scanf("%d",&a);
ans=ans^a;
}
printf("%d\n",ans);
return 0;
}