zoukankan      html  css  js  c++  java
  • HDOJ(HDU) 1563 Find your present!(异或)

    Problem Description
    In the new year party, everybody will get a “special present”.Now it’s your turn to get your special present, a lot of presents now putting on the desk, and only one of them will be yours.Each present has a card number on it, and your present’s card number will be the one that different from all the others.For example, there are 5 present, and their card numbers are 1, 2, 3, 2, 1.so your present will be the one with the card number of 3, because 3 is the number that different from all the others.

    Input
    The input file will consist of several cases.
    Each case will be presented by an integer n (1<=n<=200, and n is odd) at first. Following that, n positive integers will be given in a line. These numbers indicate the card numbers of the presents.n = 0 ends the input.

    Output
    For each case, output an integer in a line, which is the card number of your present.

    Sample Input
    5
    1 1 3 2 2
    3
    1 2 1
    0

    Sample Output
    3
    2

    题意:找出一行数中独立的数!

    按位异或的3个特点:
    (1) 0^0=0,0^1=1 0异或任何数=任何数
    (2) 1^0=1,1^1=0 1异或任何数-任何数取反
    (3) 任何数异或自己=把自己置0

    先说一下异或运算的运算法则:
    1. a ^ b = b ^ a
    2. a ^ b ^ c = a ^ (b ^ c) = (a ^ b) ^ c
    3. d = a ^ b ^ c 可以推出 a = d ^ b ^ c
    4. a ^ b ^ a = b

    对于性质1,显而易见。
    对于性质2和4,就是可以查找出一组数列中具有奇数个数的数。比如:
    题目:有2n+1个数,其中有n个数出现过两次,只有一个数字出现过一次。要求是找出这个数字。

    import java.util.Scanner;
    
    public class Main{
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
    
            while(sc.hasNext()){
                int n =sc.nextInt();
                if(n==0){
                    return ;
                }
                int m =0;
                int s;
                while(n-->0){
                    s = sc.nextInt();
                    m = m^s;
                }
                System.out.println(m);
            }
        }
    }
    
  • 相关阅读:
    STM32 串口DMA方式接收(转)
    STM32 串口功能 库函数 详解和DMA 串口高级运用(转载)
    内存泄露调试心得
    Android 5.0 5.1 webview 闪退问题
    ios 接入微信开发 新版
    ios 获取app版本号
    ios alamofire4.x网络框架url 中文问题
    微服务监控druid sql
    kotlin 单例模式
    mysql 数据库保存 微信分享时不能换行
  • 原文地址:https://www.cnblogs.com/webmen/p/5739288.html
Copyright © 2011-2022 走看看