• NYOJ


    找球号(三)
    时间限制: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
    ",k);
        }
        return 0;
    }

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

    "No regrets."
  • 相关阅读:
    字符串数组
    常用函数
    判断是否是素数回文数
    杨辉三角
    惨痛的教训 没有 脑子的我
    剪缎带
    ?????函数不起作用
    C#3
    celery 原理和组件
    vue检查用户名是否重复
  • 原文地址:https://www.cnblogs.com/zxy160/p/7215162.html
Copyright © 2020-2023  润新知