黑马程序员技术交流社区

标题: A、B值交换 [打印本页]

作者: 扬帆起航fonnson    时间: 2016-7-1 20:20
标题: A、B值交换
A=A+B
B=A-B
A=A-B
我以前都是用杯子换水的思想,需要第三方。
作者: qinxuezilu1314    时间: 2016-7-1 20:34
a=a^b;
b=a^b;
a=a^b;
作者: 940752944    时间: 2016-7-1 22:27
B = A+B-(A=b);这个应该也行
作者: 芒果小姐    时间: 2016-7-1 23:13
先求出它们的总和 最大的数 再去最大的数减去第二个数就等于三个数  用最大的数减去第三个数就等于第二个数啦  
作者: 弓长VV    时间: 2016-7-1 23:45
这样是有弊端的,因为如果A和B的值过大,会造成此类型存储不下这个值。
所以最好还是用异或的方式或者第三方变量的方式比较好,老师说工作中还是用第三方变量的方式比较多。
作者: perfect_class    时间: 2016-7-2 13:46
弓长VV 发表于 2016-7-1 23:45
这样是有弊端的,因为如果A和B的值过大,会造成此类型存储不下这个值。
所以最好还是用异或的方式或者第三 ...

开发中推荐用第三方变量的,
作者: weidong10heima    时间: 2016-7-2 21:49
方法一:t = x ; x= y ; y = t;
方法二:x = x + y ; y = x - y ; x =x - y ;
方法三:x = x ^ y ; y= x ^ y ; x = x ^ y ;
前一种开发经常用,后两种面试经常考。
作者: 糊图    时间: 2016-7-2 23:54
推荐用三方变量,面试的时候可以用异或的方法




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