SYCOJ411

Posted mofan552

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SYCOJ411相关的知识,希望对你有一定的参考价值。

题面描述

MasMas在面试某大厂时遇到了一道有趣的题。
面试官要求MasMas写一个程序找出几个数中,出现次数为奇数的那个数。
MasMas抓耳挠腮,请你帮帮他。

输入描述

第一行输入一个数n(1 \\leq n \\leq 10^7 ,n\\mod\\ 2\\ =\\ 1 )(1n107,nmod 2 = 1)
接下来nn个整数ii (ii在 intint 范围内 ),保证只有一个数出现奇数.

输出描述

输出出现次数为奇数的数

输入样例

  1. 5
  2. 1 1 2 3 3

输出样例

  1. 2

样例解释

  1. 1 出现 2
  2. 2 出现 1
  3. 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的主要内容,如果未能解决你的问题,请参考以下文章

SYCOJ#111吉祥物

STM32F411:清除外部中断标志真的有必要吗?

STM32F411RE和L610物联网入门学习笔记

STM32F411RE:程序冻结,超声波传感器不工作

java.io.IOException: Server returned HTTP response code: 411 for URL

如何实现F411RE使用HAL库实现IO中断