您的位置:首页 > 其它

Stick

2016-01-01 23:55 169 查看
算法描述:奇数个正整数,每次都可以任意取出两个相等的数,求最后剩余的数是多少?

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,然后再与另外的数亦或,即为最后剩余的数。




内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: