黑马程序员技术交流社区

标题: 两个数交换的不常用方法 [打印本页]

作者: gczsjj    时间: 2017-1-12 09:27
标题: 两个数交换的不常用方法
面试题:
        请自己实现两个整数变量的交换(不需要定义第三方变量)
x=5;
y=10;
交换过程:
方法一:
        x=x+y;   //x=5+10=15
        y=x-y;        //y=15-10=5
        x=x-y;        //x=15-5=10
方法二:
x=x^y;        //x=5^10;
y=x^y;        //y=5^10^10=5;
x=x^y;        //x=5^10^5=10;


作者: guyouzhong    时间: 2017-1-12 11:35
虽然不是常用方法,但确实教学常用方法

作者: 一片叶~    时间: 2017-1-12 13:54
学习学习.
作者: 月微怜    时间: 2017-1-12 20:53
方法二不懂。。。貌似还木有学到
作者: gczsjj    时间: 2017-1-12 21:31
月微怜 发表于 2017-1-12 20:53
方法二不懂。。。貌似还木有学到

只要记住一个数被另一个数异或两次是它本身。如:4^5^5=4

作者: 月微怜    时间: 2017-1-12 21:59
gczsjj 发表于 2017-1-12 21:31
只要记住一个数被另一个数异或两次是它本身。如:4^5^5=4

原来这就是异或阿。受教了。。
作者: gczsjj    时间: 2017-1-12 22:01
以后多多交流





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2