Find a number HNUST OJ 1517 (位运算 判断一列数字中出现的唯一一个奇数数字)

来源:互联网 发布:手机修改淘宝店铺名称 编辑:程序博客网 时间:2024/06/05 21:56
题目描述
Find a number which is repeated odd times, then You should output the number.


Example 1:


if input is:12 12 12 12 15


then output is: 15


Example 2:


if input is:12 13 12 13 18 12 13 13 18


then output is: 12


输入
First line contains a positive integer N < 500000 ,then, N positive integers follow (delimited with space) each less than 1 000 000.


输出
In input sequence only one number X is repeated odd times. Others have even number of occurrences. You should output X.


样例输入
9
3 1 2 2 17 1 3 17 3
样例输出
3
提示


If you can avoid error "Memory Limit Exceed", this problem will be a very simple problem.

思路:位运算中的异或运算符,2个数字异或则为0;

#include<iostream>#include<cstdio>using namespace std;int main(){     int n;     while(scanf("%d",&n)==1)     {         int sum=0,num;         while(n--)         {             scanf("%d",&num);             sum=sum^num;         }         printf("%d\n",sum);     }}


阅读全文
0 0