• nyoj_528_找球号(三)_201404152050


     

    找球号(三)

    时间限制:2000 ms  |  内存限制:3000 KB
    难度:2
     
    描述

    xiaod现在正在某个球场负责网球的管理工作。为了方便管理,他把每个球都编了号,且每个编号的球的总个数都是偶数。有一天,xiaod发现少了一个球,你能帮他找出丢的那个球的球号吗?

     
    输入
    有多组测试数据。每组数据包括两行。 第一行是一个整数N(0<N<1000000),表示现在所剩的球数。 随后的一行是N个数,表示所剩的各个球的编号M(0<M<10^9)。
    输出
    对于每组数据,输出弄丢的那个球的球号。
    样例输入
    5
    1 1 3 6 6
    3
    1 2 1
    样例输出
    3
    2
    来源
    hdu改编
    上传者
    ACM_丁国强
     1 #include <stdio.h>
     2 
     3 int main()
     4 {
     5     int n;
     6     while(scanf("%d",&n)!=EOF)
     7     {
     8         int i,a,s=0;
     9         for(i=0;i<n;i++)
    10         {
    11             scanf("%d",&a);
    12             s ^= a;
    13         }
    14         printf("%d
    ",s);
    15     }
    16     return 0;
    17 }
    18 //位运算--异或

    位异或: 

    位异或的运算法则吧:

    1、a^b = b^a。

    2、(a^b)^c = a^(b^c)。

    3、a^b^a = b。

    对于一个任意一个数n,它有几个特殊的性质:

    1、0^n = n。

    2、n^n = 0。

    所以可以通过每次异或运算,最后剩下的值就是出现奇数次的那个数字。

    ps:还可以用异或来交换变量

     1 #include <stdio.h>
     2 void swap(int &a,int &b)
     3 {
     4     a^=b;
     5     b^=a;
     6     a^=b;
     7 }
     8 int main()
     9 {
    10     int n,m;
    11     while(scanf("%d%d",&n,&m)!=EOF)
    12     {
    13        swap(n,m);
    14        printf("%d %d
    ",n,m);
    15     }
    16     return 0;
    17 }
  • 相关阅读:
    Java——快速排序
    Java——归并排序
    Java——递归
    Java——希尔排序
    Java——插入排序
    Java——选择排序
    ES6快速入门
    ECharts is not Loaded
    scoped的规则
    css哪些样式属性可以继承
  • 原文地址:https://www.cnblogs.com/xl1027515989/p/3667296.html
Copyright © 2020-2023  润新知