【发布时间】:2013-05-21 09:53:24
【问题描述】:
我想只使用 += 和 -= 运算符交换两个变量,而没有临时变量。我知道标准解决方案,例如:
a = a+b;
b = a-b;
a = a-b;
和xor:
a ^= b;
b ^= a;
a ^= b;
但我不知道如何仅使用 += 和 -=。有可能吗?
【问题讨论】:
-
b -= 2 * b怎么样? -
@Tom,再说一遍,
*是不允许的 -
谁认为这个问题“没有建设性”?这是一个非常精确的问题,将有一个非常精确的答案(几行代码或“无法完成”)。它的实际用途可能值得商榷,但从编程/数学的角度来看,它是有效的并且有趣。
-
我不相信这 4 个运营商
a+=b, a-=b, b+=a, b-=a是可能的,但我无法证明这一点。 -
好吧,也许你是对的。你也可以
a+=a和a-=a,第一个可能有用