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 范围内 ),保证只有一个数出现奇数.
输出描述
输出出现次数为奇数的数
输入样例
51 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的更多相关文章
随机推荐
- Shell if 参数含义列表
[ -a FILE ] 如果 FILE 存在则为真. [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真. [ -c FILE ] 如果 FILE 存在且是一个字特殊文 ...
- LuoguB2001 入门测试题目 题解
Update \(\texttt{2021.7.3}\) 经测试,本题 \(a,b\) 范围在 long long,对代码进行了修改,并修改一些笔误,更新了数据范围. \(\texttt{2021.7 ...
- 贪心——122.买卖股票的最佳时机II
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格. 设计一个算法来计算你所能获取的最大利润.你可以尽可能地完成更多的交易(多次买卖一支股票). 注意:你不能同时参与多笔交易(你必须在再次 ...
- JAVA获取当前年份,月份、日期、小时、分钟、秒等
import java.util.Calendar; public class Main { public static void main(String[] args) { Calendar cal ...
- JAVA中价格金额的存储类型
在java项目中,我们会遇到价格.金额的数据,这时候我们java中应该用BigDecimal类型,数据库用decimal类型, 长度可以自定义, 如18; 小数点我们项目中用的是2, 保留2位小数. ...
- 重学c#系列——datetime 和 datetimeoffset[二十一]
前言 简单介绍一下datetime和 datetimeoffset. 正文 了解一个国家的文化,就要了解一个国家的历史. 要了解datetimeoffset,那么很有必要了解一下datetime. 表 ...
- 自定义C语言CVector
CVector.h // // cvector.h // GKApp // // Created by 王明辉 on 16/4/15. // Copyright (c) 2016年 GK. All r ...
- 【LeetCode】720. Longest Word in Dictionary 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 暴力查找 排序 日期 题目地址:https://le ...
- 【LeetCode】153. Find Minimum in Rotated Sorted Array 解题报告(Python)
[LeetCode]153. Find Minimum in Rotated Sorted Array 解题报告(Python) 标签: LeetCode 题目地址:https://leetcode. ...
- codeforce-424C. Magic Formulas(数学)
C. Magic Formulas time limit per test:2 seconds memory limit per test:256 megabytes input stan ...