[算法]不用第三个数交换2个数的位置
2016-01-23 14:55
211 查看
int a = 10;
int b = 20;
第一种方法:
a = a + b;
b = a - b;
a = a - b;
第二种方法:
a = a ^ b; (^ 语言中是异或的意思,同为0 异为1 1 ^ 1 = 0, 0 ^ 0 = 0, 1 ^ 0 = 1)
b = a ^ b;
a = a ^ b;
第三种方法 (这种方法容易越界)如果a 大于int型最大值了!
a = (a + b) - (b = a);
int b = 20;
第一种方法:
a = a + b;
b = a - b;
a = a - b;
第二种方法:
a = a ^ b; (^ 语言中是异或的意思,同为0 异为1 1 ^ 1 = 0, 0 ^ 0 = 0, 1 ^ 0 = 1)
b = a ^ b;
a = a ^ b;
第三种方法 (这种方法容易越界)如果a 大于int型最大值了!
a = (a + b) - (b = a);
相关文章推荐
- ASP.NET MVC 过滤器详解
- KEIL mdk LIB 使用总结
- Go语言入门(三)——map
- dedecms中提取的zip压缩文件操作类zip.class.php
- 【最大流FF模板】HDU1532&POJ1273
- 【委托】——动态决定使用何方法
- linux下如何设置环境变量PATH的多种方式
- underscorejs-map学习
- 面向服务开发(SOA)
- 《转》VMware vSphere 5.1 学习系列之二:安装 Openfiler 存储
- 修改exe应用程序属性
- JavaScript 通过 WebView 调用 Android Text to Speech API
- UI_标签导航控制器
- underscorejs-each学习
- Extreme Programming (XP)介绍
- Leetcode 35. Search Insert Position
- noitisoPtresnIhcraeS.35
- HDU2057
- 设计模式——创建型模式
- 《转》VMware vSphere 5.1 学习系列之一:实验环境的搭建