CSUOJ 1217 奇数个的那个数

Description

给定些数字,这些数中只有一个数出现了奇数次,找出这个数。

Input

每组数据第一行n表示数字个数,1 <= n <= 2 ^ 18 且 n % 2 == 1。

接下来n行每行一个32位有符号整数。

Output

出现奇数次那个数,每组数据对应一行。

Sample Input

5
1
1
2
2
3

7
1
2
1
2
2
3
3

Sample Output

3
2

看了大神的代码 使用位运算o(╯□╰)o
 1 # include <stdio.h>
 2 int main()
 3 {
 4     int n, x, ans;
 5     while (scanf("%d", &n) != EOF)
 6     {
 7         ans = 0;
 8         for ( ; n > 0; --n)
 9         {
10             scanf("%d", &x);
11             ans ^= x;
12         }
13         printf("%d\n", ans);
14     }
15     return 0;
16 }
 

CSUOJ 1217 奇数个的那个数,布布扣,bubuko.com

时间: 2024-12-22 07:24:04

CSUOJ 1217 奇数个的那个数的相关文章

【数组中出现奇数次的2个数】 笔试题精选

转自:http://blog.csdn.net/wodewe/article/details/6863753# 题:有N+2个数,N个数出现了偶数次,2个数出现了奇数次(这两个数不相等),问用O(1)的空间复杂度,找出这两个数,不需要知道具体位置,只需要知道这两个值.求解:如果只有一个数出现过奇数次,这个就比较好求解了,直接将数组中的元素进行异或,异或的结果就是只出现过奇数次的那个数.但是题目中有2个数出现了奇数次?,求解方法如下:假设这两个数为a,b,将数组中所有元素异或结果x=a^b,判断x

(HDUSTEP 2) hdu 2095 find your present (2)(找到出现奇数次的那个数)

题目如下: find your present (2) Time Limit: 1000/2000 MS (Java/Others) Memory Limit: 32768/1024 K (Java/Others) Total Submission(s): 6275 Accepted Submission(s): 1639   Problem Description In the new year party, everybody will get a "special present"

求一个序列中两个只出现一次的数

当然了,O(1)空间复杂度是必须的... 先看一个简单版: 求出一个序列中一个只出现一次的数 COJ 1217 奇数个的那个数 http://122.207.68.93/OnlineJudge/problem.php?id=1217 我们知道任意两个相同的数 异或结果为0  任何数与0异或结果是其本身  异或运算满足交换律 亦即:a^a=0     a^0=a      (a^b)^(a^b)=(a^a)^(b^b)=0^0=0 这样我们就得到了一个用异或运算的解法 1 #include<std

一组数中,只有两个数只出现了奇数次,其他所有数都是成对出现的,请找出那两个数

先看一个简单的,一组数中,只有一个数只出现了奇次,其他所有数都是成对出现的,找出出现奇次数的数.对于这个题,我们只需对所有数及逆行异或即可.理论公式: a⊕b=b⊕a a⊕0=a a⊕b⊕b=a a⊕(b⊕c)=(a⊕b)⊕c 代码: #include <stdio.h> #include <stdlib.h> int main() { int arr[] = { 1, 2, 3, 4, 1, 2, 3 }; int ret = 0; int len = sizeof(arr) /

第3周作业第1题 奇偶个数

1 奇偶个数(5分) 题目内容: 你的程序要读入一系列正整数数据,输入-1表示输入结束,-1本身不是输入的数据.程序输出读到的数据中的奇数和偶数的个数. 输入格式: 一系列正整数,整数的范围是(0,100000).如果输入-1则表示输入结束. 输出格式: 两个整数,第一个整数表示读入数据中的奇数的个数,第二个整数表示读入数据中的偶数的个数.两个整数之间以空格分隔. 输入样例: 9 3 4 2 5 7 -1 输出样例: 4 2 时间限制:500ms内存限制:32000kb import java.

趣题:寻找出现了奇数次的数

看到16级的做广工的新生赛某题,找一组数中出现了奇数次的两个数(其他数都出现偶数次),竟然不会= =. 解释在此:http://www.matrix67.com/blog/archives/511. 当然,手写hash表应该也是可以的..

程序设计入门——C语言 第3周编程练习 1 奇偶个数(5分)

1 题目内容: 你的程序要读入一系列正整数数据,输入-1表示输入结束,-1本身不是输入的数据.程序输出读到的数据中的奇数和偶数的个数. 输入格式: 一系列正整数,整数的范围是(0,100000).如果输入-1则表示输入结束. 输出格式: 两个整数,第一个整数表示读入数据中的奇数的个数,第二个整数表示读入数据中的偶数的个数.两个整数之间以空格分隔. 输入样例: 9 3 4 2 5 7 -1 输出样例: 4 2 时间限制:500ms内存限制:32000kb // // main.c // c yuy

[虚拟机OA]Even Subarray 最多含有K个奇数的子数组

A subarray is a contiguous portion of an array. Given an array of integers, you must determine the number of distinct subarrays that can be formed having at most a given number of odd elements. Two subarrays are distinct if they differ at even one po

LeetCode.1217-交换芯片(Play with Chips)

这是小川的第421次更新,第454篇原创 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第270题(顺位题号是1217).There are some chips, and the i-th chip is at position chips[i]. You can perform any of the two following types of moves any number of times (possibly zero) on any chip: Move the i-