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,然后再与另外的数亦或,即为最后剩余的数。
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,然后再与另外的数亦或,即为最后剩余的数。
相关文章推荐
- codeforces 336 Div.2 B. Hamming Distance Sum
- c++实现回调函数及使用方法
- 如何设置minSdkVersion和targetSdkVersion
- Cocoa Touch事件处理流程-响应者链
- java16.语言进阶------本地文件操作---文件的简单读写
- 将博客搬至CSDN
- 使用异或运算实现两数交换
- 事件处理步骤
- mysql技能点
- 百度云下载速度慢解决方法
- 菜鸟成长记(七)----- 如何叫醒一个装睡的人?
- Ubuntu下使用Nexus搭建Maven私服
- 时钟的简单实现
- 文件上传与下载
- 三角形问题
- (转)path与classpath区别
- javascript window.confirm确认 取消对话框实现代码小结
- Python成长之路第一篇(1)__字符串初识
- sax,Dom,等解析方式地址 ?
- aspx页面与ashx的区别