读书人

有没有办法实现不开辟新空间而实现两数

发布时间: 2012-03-19 22:03:05 作者: rapoo

有没有办法实现不开辟新空间而实现两数的交换?
问题如上

[解决办法]

a=a+b;//
b=a-b;//
a=a-b;//不需要temp,也不需要辅助类
------------------

[解决办法]

C/C++ code
{   a^=b;   b^=a;   a^=b;}
[解决办法]
我要分,可怜可怜我吧!
方案1
a^=b;
b^=a;
a^=b;

方案2
a+=b;
b=a-b;
a=a-b;

方案3
_asm
{
push a;
push b;
pop a;
pop b;
}

方案4
a*=b;
b=a/b;
a=a/b;

读书人网 >C++

热点推荐