算法描述:奇数个正整数,每次都可以任意取出两个相等的数,求最后剩余的数是多少?
eg: 5,9,5,10,10 最后剩余的数是9
^表示亦或运算,例如:1^1=0,0^0=0,1^0=1,0^1=1
即两个相同的数亦或^得0,0与其余的数亦或得那个数本身,C语言在计算机中采用补码表示,这里都是正整数,原码补码一样,例如5=0101(前面的0就省略了,比如32机器中int应该占32位),9=1001
0101 =5
xor 1001 =9 0101
—————— 1001
1100 =12 ======》 0101
xor 0101 =5 ——————
___________ 1001 =9
1001 =9
可以看出只要存在两个相等的数,就会亦或出0,然后再与另外的数亦或,即为最后剩余的数。