交换两个变量的值,不用第三个变量
来源:互联网 发布:手机怎么多注册淘宝号 编辑:程序博客网 时间:2024/04/28 06:13
方法1.(可能是最简单的方法)
a = b - a + (b = a) ;
方法2.
a = b - a; b = b - a; a = a + b;
“通过以上运算,a和b中的值就进行了交换。表面上看起来很简单,但是不容易想到,尤其是在习惯标准算法之后。
它的原理是:把a、b看做数轴上的点,围绕两点间的距离来进行计算。
具体过程:第一句“a=b-a”求出ab两点的距离,并且将其保存在a中;第二句“b=b-a”求出a到原点的距离(b到原点的距离与ab两点距离之差),并且将其保存在b中;第三句“a=b+a”求出b到原点的距离(a到原点距离与ab两点距离之和),并且将其保存在a中。完成交换。
此算法与标准算法相比,多了三个计算的过程,但是没有借助临时变量。(以下称为算术算法)”
方法3.
b = a - (a = b) * 0;
方法4.
a = a + b;b = a - b;a = a - b;
方法5.
a = a * b;b = a / b;a = a / b;
方法6.(位运算)
a = a ^ b;b = a ^ b;a = a ^ b;
“此算法能够实现是由异或运算的特点决定的,通过异或运算能够使数据中的某些位翻转,其他位不变。这就意味着任意一个数与任意一个给定的值连续异或两次,值不变。
即:a^b^b=a。将a=a^b代入b=a^b则得b=a^b^b=a;同理可以得到a=b^a^a=b;轻松完成交换。”(引用)
参考:http://www.cnblogs.com/taoqianbao/archive/2011/09/21/2184315.html 妙解两个变量交换值-不用第三个变量哦 - 朱峰(Peter.zhu) - 博客园
http://foohsinglong.iteye.com/blog/1305771
- 不用第三个变量交换两个变量的值
- 不用第三个变量,直接交换两个变量的值
- 不用第三个变量,直接交换两个变量的值
- 不用第三个变量实现交换两个变量的值
- 不用第三个变量,直接交换两个变量的值
- 交换两个变量的值,不用第三个变量
- 不用第三个变量,直接交换两个变量的值
- 不用第三个变量,直接交换两个变量的值
- 不用第三个变量交换两个变量的值
- 不用第三个变量,如何交换两个变量的值
- 不用第三个变量交换两个变量的值
- php 不用第三个变量交换两个变量的值
- 不用第三个变量交换两个变量
- 不用第三个变量交换两个变量
- 不用引入第三变量交换两个变量的值
- java中不用第三变量交换两个变量的值
- 不用第三个变量交换2个变量的值
- 由“不用第三个变量,直接交换两个变量的值”所想到的
- 存储过程解题
- 常见android手机分辨率(xxhdpi,xhdpi)
- unix环境高级编程-4.11-chown,fchown和lchown函数
- linux设备上的Onvif 实现15: 连接RTSP获取视频流流程图
- base.js
- 交换两个变量的值,不用第三个变量
- A shallow summary of oracle log miner
- Oracle 数据泵详解
- python中decode和encode的使用
- 为了美观当网页图片不存在时不显示叉叉图片
- Android 中,应用程序需要的图片资源如何针对不同屏幕大小手机设计?
- SQL多条件模糊查询解决方案(类似百度搜索)
- 欧几里得算法 模板
- HDU 1171 多重背包