不占用任何额外空间的情况下交换两个数的值
来源:互联网 发布:python语言入门 pdf 编辑:程序博客网 时间:2024/06/05 17:39
问题:
给你两个整数,比如 a = 10, b = 20,在不占用任何额外空间的条件下交换两个数的值。
思路:
首先,问题看起来是挺不可思议,但是也是挺有趣的。既然不能占用任何空间,只能在已有的变量上打主意。这里有两个方法,看完代码自己就能马上明白,所以就不多解释了。
方法1:
int a = 10;int b = 20;a = a^b;b = b^a;a = a^b;
这个方法用到了一个事实:任何数自己和自己异或(XOR)后等于0.
方法2:
int a = 10;int b = 20;a = a + b;b = a - b;a = a - b;
这两种方法最好选用第一种,因为第二种会有溢出的情况发生。
- 不占用任何额外空间的情况下交换两个数的值
- 不占用任何额外空间的情况下交换两个数的值
- 如何不适用任何额外空间,交换两个数的值
- 不占用额外空间 交换两个变量的值
- 不用额外空间,交换两个数的值.
- 不使用额外空间来交换两个数
- 在不使用额外空间,交换两个数
- 不开额外空间,交换A,B的值
- 不用额外变量交换两个数的值
- 005不用额外变量交换两个数的值
- 不用额外空间,交换两个数
- 如何不使用任何额外空间实现两数相互交换
- 两个数在不使用中间变量的情况下,交换数值的方法汇总.
- 不使用额外空间实现两个变量(int 型)的交换
- 不定义中间变量的情况下,实现两个数交换数值
- 【刷题之路】不使用额外空间交换两个数
- 有两个字符串数组,即 string1 与 string2,不使用任何C/C++库函数的情况下,请问如何交换这两个字符串数组中的数据
- 变量交换 如果要把两个整型变量a、b的值交换,一般要采用一个中间变量做过渡, 但也可以在不借助任何其它变量的情况下完成。
- Gimbal Lock
- 万向节死锁
- LoadRunner性能能测试报表模板
- Vaadin Web应用开发教程(35):UI布局-Accordion布局
- Android ApiDemos示例解析(144):Views->Layouts->LinearLayout->4. Horizontal
- 不占用任何额外空间的情况下交换两个数的值
- wxWidgets实现不规则窗体
- 【网页】重定向和搜索引擎的关系
- 修改wxWidgets的可执行文件图标和版本号
- Remove Duplicates from Sorted Array
- CodeBlocks+wxWidgets
- php进行http重定向
- CodeBlocks+MinGW+wxWidgets 搭建 C++ 开发环境
- 找出丢失的数字 (XOR)