我想在不使用临时变量的情况下交换4个变量。那可能吗?不使用临时变量交换4个变量
我想要像a = b & b = c & c = d & d = a
一样做,而不使用临时新的第5个变量。
**更新: - 好吧..得到它!没有另一个新变量就无法完成!
我怎样才能用单变量temp办呢?**
我想在不使用临时变量的情况下交换4个变量。那可能吗?不使用临时变量交换4个变量
我想要像a = b & b = c & c = d & d = a
一样做,而不使用临时新的第5个变量。
**更新: - 好吧..得到它!没有另一个新变量就无法完成!
我怎样才能用单变量temp办呢?**
你可以在连续对使用XOR swap,交换ň变量没有一个临时变量。
a b c d // Variables
-------
A B C D // Initial values
B A C D // swap(a,b)
B C A D // swap(b,c)
B C D A // swap(c,d)
这就是说,使用临时变量更容易理解,并不一定低效。
编辑
你更新的问题是问如何与一个临时变量交换变量。这很容易。
int temp = a;
a = b;
b = c;
c = d;
d = temp;
“你不一定低效”的意思是“确实更高效”。 –
这是我的猜测,但我没有在任何地方进行测量。 –
@AndyThomas如果'c = d'那么'c等于温度等于a' :(所以它不正确! – user2925358
不使用任何五变量,我们可以工作一样,如果你有4个变量X,Y,Z,W和你想让他们X = Y,Y = Z,Z = W,W = X。
x=x+y;
y=x-y;
x=x-y;
y=y+z;
z=y-z;
y=y-z;
z=z+w;
w=z-w;
z=z-w;
先交换'a','b'然后'b','d'然后'c','b' ...... –
我不明白你更新的问题。 – kay
@Kay我想要使用一个临时变量atlease at ...可能吗? – user2925358