面试题:不用第三变量交换ab值
2007-12-18 10:49
176 查看
常规的就是加减法,这里给出另外一种方法,就是异或法!
这里给出的是c++的表达式子,用的是引用,c语言的直接用指针就是了
#include <iostream> using namespace std; void exchange1(int &a, int &b); void exchange2(int &a, int &b); int main(int argc, _TCHAR* argv[]) { int a = 10, b = 5; exchange1(a, b); cout << a << "," << b << endl; exchange2(a, b); cout << a << "," << b << endl; return 0; } void exchange1(int &a, int &b) { a = a - b; b = a + b; a = b - a; } void exchange2(int &x, int &y) { x = x ^ y; y = x ^ y; x = x ^ y; } |
相关文章推荐
- 面试题:不用第三变量交换ab值
- ADO.NET面试题之基础篇不用第三变量交换两个变量的值
- 不用第三变量交换两个整数
- 一面试题:不用任何中间变量,完成两个int型的交换。
- 不用第三变量交换整型数值的三种方法
- PHP不用第三变量交换2个变量的值的解决方法
- 不用设置第三变量,交换两个变量
- Java里不用第三变量完成两个数字的交换
- 不用引入第三变量交换两个变量的值
- 变量之间交换数据(不用第三变量)
- 交换两个变量而不用第三变量
- Java不用临时变量temp将两个数交换(面试题)
- PHP不用第三变量交换2个变量的值的解决方法
- c面试题:不用中间变量,完成数值交换!
- [C]经典算法——不用第三变量交换两数
- 常见面试题,交换两个整形变量不用中间变量怎样实现?
- 不用第三变量做值交换,不用sizeof判断int字节数
- 不用第三变量交换二个变量值
- 交换a,b值,并且不用第三变量
- C语言中几种不用第三变量交换两值的方法