HDU 2095 find your present (2)

在逻辑学中,逻辑算符 异或(符号为XOREOR)是对两个运算元的一种逻辑析取类型。但与一般的逻辑或不同,异或算符的值为仅当两个运算元中恰有一个的值为真,而另外一个的值为非真[1]。转化为命题,就是:“两者的值不同。”或“有且仅有一个为真。”

两个运算元(命题):A与B的异或一般写成A异或B,或者写成AXORB、、等等。在C语言中,写作A^B。

异或运算的真值表如下:

A B
F F F
F T T
T F T
T T F

n是奇数,有一个数出现一次,其它数都是偶次。有因为数据量太大,所以用亦或。

亦或满足交换律,相同的两个数亦或为0,任何数和0亦或为其本身


  
    
#include < stdio.h >


int main(){
int ans,n,m;
while (scanf( " %d " , & n) == 1 ,n){
ans
= 0 ;
for ( int i = 0 ; i < n; ++ i){
scanf(
" %d " , & m);
ans
^= m;
}
printf(
" %d\n " ,ans);
}
return 0 ;
}

你可能感兴趣的:(find)