黑马程序员技术交流社区
标题:
算法:不用中间变量调换两个值
[打印本页]
作者:
半世心修
时间:
2015-5-29 08:49
标题:
算法:不用中间变量调换两个值
想起以前做的一种蛮有趣的方式,分享下:
public static void main(String args[]){
int a=15;
int b=3;
a=a*b;
b=a/b;
a=a/b;
System.out.print("a="+a+" b="+b);
}
复制代码
作者:
人在旅途~东营
时间:
2015-5-29 08:55
可以直接用位异或"^".
作者:
pvbj0314
时间:
2015-5-29 09:06
楼主,我觉得把这个方法的限制补充一下会更好。
乘法比加法更容易溢出吧,两个数相乘得到的结果要在整型范围内;
另外,交换的两个数都不能为0.
其他,暂时没有想到。
作者:
半世心修
时间:
2015-5-29 09:07
都说了是两年前自己突发奇想出来的一个东西啦,后来查网上发现早有了哈
作者:
sjaiwl
时间:
2015-5-29 09:27
这个直接用异或操作就可以实现了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2