浏览 3076 次
锁定老帖子 主题:不使用中间变量的a,b值交换
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2010-01-22
不适用中间变量的a,b值交换 a=a+b;b=a-b;a=a-b; 或 a=a^b;b=a^b;a=a^b; 第一种解法不需要解释,但要说明的是有一个缺点就是当a,b很大时会溢出。关于第二个解法首先要了解异或运算满足交换律和结合律,从这个角度来看解法二可以这么理解: b = (a^b)^b = a^(b^b) = a^0=a; a=(a^b)^a = a^(b^a)=a^(a^b)=(a^a)^b = 0^b = b;
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |