SYCOJ411
Posted mofan552
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SYCOJ411相关的知识,希望对你有一定的参考价值。
题面描述
MasMas在面试某大厂时遇到了一道有趣的题。
面试官要求MasMas写一个程序找出几个数中,出现次数为奇数的那个数。
MasMas抓耳挠腮,请你帮帮他。
输入描述
第一行输入一个数nn (1 \\leq n \\leq 10^7 ,n\\mod\\ 2\\ =\\ 1 )(1≤n≤107,nmod 2 = 1)
接下来nn个整数ii (ii在 intint 范围内 ),保证只有一个数出现奇数.
输出描述
输出出现次数为奇数的数
输入样例
5
1 1 2 3 3
输出样例
2
样例解释
1 出现 2次
2 出现 1次
3 出现 2次
所以输出22
1 #include<bits/stdc++.h>
2 using namespace std;
3 int ans,n,x;
4 int main()
5 {
6 scanf("%d",&n);
7 for(int i=1;i<=n;i++) scanf("%d",&x),ans^=x;
8 cout<<ans<<endl;
9 return 0;
10 }
题目中说了,偶数次,只有一个是奇数次。那么通过异或操作可以解决。
a^b
1.如果a,b相同,那么最后得到0
2.如果a=0,那么最后得到本身
所以所有偶数次,最后都得到0,那么到最后剩下唯一的一个异或0,得到本身。故该题得解。
以上是关于SYCOJ411的主要内容,如果未能解决你的问题,请参考以下文章
java.io.IOException: Server returned HTTP response code: 411 for URL