在不申请新内存空间条件下交换两个数的值
来源:互联网 发布:淘宝小二是什么意思 编辑:程序博客网 时间:2024/06/11 03:15
只是觉得这个问题很好玩,在此记录一下:
1. 使用异或运算
int a=2,b=4;//此时a的二进制为‘010’,b的二进制为‘100’
下面使用编程语言中的‘^’,即异或操作符来完成异或运算,如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。
第一次:
a = a ^ b; // a = 6
2与4进行异或运算,计算过程如下
010100----110
a被赋值为6,二进制表示110
第二次:
b = a ^ b;
6与4进行异或运算,此处就将变量a原来的值赋予了变量b:
110100----010
变量b被赋值为2,交换获得a变量原来的值
第三次:
a = a ^ b;
6与2进行异或运算,变量a交换获得原来变量b的值,完成
110010----100
2. 使用加法运算
加法更加容易
int a=3,b=6;a = a + b;b = a - b;a = a - b;
1 0
- 在不申请新内存空间条件下交换两个数的值
- PHP中如何不引入第三个变量的条件下实现:交换两个变量的值?
- 原地旋转矩阵(不申请新的内存空间旋转矩阵)
- 不申请空间交换两个值
- 如何不引入新的变量,交换两个数的值
- 4.2.编程从键盘输入两个整数分别给变量a, b, 要求在不借助于其它变量的条件下将变量a和b的值实现交换。
- 交换两个数的值以及不使用临时变量交换两个数的值
- 不产生新变量交换两个变量的值
- 给定两个整形变量的值,在不创建临时变量的前提下,交换两个数的内容
- 交换两个数的值,不采用中间变量。
- 不使用临时变量 交换两个数的值
- 不引入第三变量,交换两个数的值
- 不创建临时变量,交换两个数的值
- 如何不使用中间变量交换两个数的值
- 不使用临时变量交换两个数的值
- 交换两个数的值,不借助第三方变量.
- 交换两个数的值,不借助第三方变量
- 交换两个数的值(不使用第三个变量)
- LeetCode 129. Sum Root to Leaf Numbers
- SVN 基本使用
- spinner(下拉列表框),RadioButton(单选按钮),EditText,Adapter的应用
- 求一个int型整数的两种递减数之和(java)--2015华为机试题
- python day3
- 在不申请新内存空间条件下交换两个数的值
- 下载英文文章的一些技巧
- C++11系列-改进的类型推导:auto、decltype和新的函数语法
- hdu 3853 LOOPS(概率dp)
- 关于shiro权限控制java.l ang.Class cannot be cast to java.lang.reflect.ParameterizedType
- java标准输入输出流
- 关于HTML/CSS的排版的备忘录
- 3.16
- runloop