这个题貌似完全颠覆一般的Logic:交换两个整数需要一个额外的空间用于保存:
t = b;
b = a;
a = t;
粗看上去似乎没有办法,但是仔细想一下,既然不能用额外的空间,那么能用的方法就只有数学方法,也许有效,那么第一个想法就是用A+b看看,稍微想一下就可以得到下面这个解法:
a = a + b;
b = a - b;
a = a - b;
b = a - b;
a = a - b;
还有更绝的(由DxZ网友提供):
a = a ^ b;
b = a ^ b;
a = a ^ b;
b = a ^ b;
a = a ^ b;
本文介绍了一种在不使用额外变量的情况下交换两个整数的方法,利用数学加减法和位运算实现,展示了两种实用的代码实现方式。
6005

被折叠的 条评论
为什么被折叠?



