HDU 2095 find your present (2)

来源:互联网 发布:象棋软件哪个厉害 编辑:程序博客网 时间:2024/06/05 19:56

位运算很强大,解释:

整数的异或是先把它们化成二进制,再按位异或。比如3^5, 3=011,5=101,两数按位异或后为
110,即6。
    1:几个数异或满足交换律。2^3^2=2^2^3=0^3=3.
    2:两个相同的数异或为0,普通数都出现了偶数次,所以它们异或后都是0,而0与那个特别数异或后还是那个特殊数。

#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;int main(){    int n;    while(scanf("%d",&n)!=EOF&&n)    {        int v;        scanf("%d",&v);        int ans=v;        for(int i=1;i<n;i++)        {            scanf("%d",&v);            ans^=v;        }        printf("%d\n",ans);    }    return 0;}


0 0
原创粉丝点击