NYOJ - 找球号(三)

来源:互联网 发布:photoshop mac版价格 编辑:程序博客网 时间:2024/05/21 09:56

找球号(三)
时间限制:2000 ms | 内存限制:3000 KB
难度:2
描述
xiaod现在正在某个球场负责网球的管理工作。为了方便管理,他把每个球都编了号,且每个编号的球的总个数都是偶数。有一天,xiaod发现少了一个球,你能帮他找出丢的那个球的球号吗?

输入
有多组测试数据。每组数据包括两行。
第一行是一个整数N(0

#include<stdio.h>#include<algorithm>using namespace std;int main(){    int n,i;    while(~scanf("%d",&n))    {        int k=0,m;        for(i=0; i<n; i++)        {            scanf("%d",&m);            k^=m;        }        printf("%d\n",k);    }    return 0;}

这题主要用到了位运算的一个小的技巧,也就是假设一个数k ,k ^A^A = k 也就是说,k与偶数个其他数字按位异或运算之后,还是本身。那么,可以利用这个特点,直接解决这个问题
异或运算符的特点是:数a两次异或同一个数b仍然为原值a ,即a=a^b^b.

0 0
原创粉丝点击