交换A与B值的四种方法
来源:互联网 发布:时代大数据公司 编辑:程序博客网 时间:2024/06/05 20:32
在网上看到了这样一道面试题,“int A=5,int B=2,怎样交换A与B的值”,或许这是一道简单到不能再简单的题,但能作为一道面试题,肯定有其独特之处
大多数人会通过定义第三个变量来中转,即:
方法一:
int temp;
temp=A;
A=B;
B=temp;
其实除了这种方法,还可以不通过中间变量,仅经过简单运算就地交换
例如:利用加减法
方法二:
A=B-A=2-5=-3;
B=B-A=2-(-3)=5;
A=A+B=-3+5=2;
当然,还可以再简化一下,这种方法我是没有想到
方法三:
A=A+B-(B=A)=5+2-5=2 同时B也被替换成了5.
还可以通过异或运算(相同为0,不同为1)来完成
方法四:A=A^B; A=A^B; A=A^B; 或者A^=B^=A^=B;
具体过程如下:
A=A^B;
B=A^B=(A^B)^B=A^(B^B)=A^0=A;
A=A^B=(A^B)^A=(A^A)^B=0^B=B;
- 交换A与B值的四种方法
- A值与B值的交换方法
- swap(a,b)值交换的4种方法
- swap(a,b)值交换的4种方法
- 交换变量a ,b值的三种方法
- a与b值交换
- 交换a,b的值
- 不用额外空间来交换 a b 值的方法
- 两个变量a,b交换值的方法
- 将a和b交换的3种方法
- 交换a和b的方法讲解
- 将a与b的值进行交换
- 交换两个变量a与b的值
- c语言swap(a,b)值交换的4种实现方法
- C 语言swap(a,b)值交换的几种实现方法
- c语言swap(a,b)值交换的4种实现方法
- 交换a、b值
- 交换a,b的值的程序
- EXP-00091 正在导出有问题的统计信息 问题的解决
- webStorm中的一些常见设置
- Qt 内存管理
- MFC打开文件对话框
- 关于哈希码(Hashcode)
- 交换A与B值的四种方法
- 添加书签和首页(IE和Firefox)
- oracle 11g不能导出空表的解决方法
- zookeeper+dubbo+spring,从头到尾
- iOS多线程编程之Grand Central Dispatch(GCD)介绍和使用
- SQL数据类型nchar,char,varchar与nvarchar区别
- MFC中Doc,View,MainFrmae,App各指针的互相获取
- MSHFlexgrid控件的内容导出到Excel
- 杀人游戏-约瑟夫问题