HDOJ 2095 find your present (2)

来源:互联网 发布:2017淘宝年货节时间 编辑:程序博客网 时间:2024/06/06 03:37

HDACM2095

此题采用的是异或的方法计算
a^a == 0
a^0 == a
b^a^b == a —> (b^b==0,0^a==a)
只要输入相同值的个数是偶数则异或后必然为0,
0^n^n^n^…^n(n的个数为奇数)== 0^n^0^0^…^0==n

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.StreamTokenizer;public class Main{    public static void main(String[] args) throws IOException {        StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));        while(true){            in.nextToken();            int n = (int)in.nval;            if (n==0) {                break;            }            int ans = 0;            for (int i = 0; i < n; i++) {                in.nextToken();                ans = ans ^(int)in.nval;            }            System.out.println(ans);        }    }}
原创粉丝点击