关于交换两个变量

原创 2012年03月26日 16:47:48

int a = 1;

intb = 2;

 方法一:加减法

 a =a + b;

 b =a - b;

 a =a - b;

 方法二:异或操作

a = a ^ b;

b = a ^ b;

a = a ^ b;

方法三:乘除法

a = a * b ;

b = a / b ;

a = a / b ;

总结:
此题的本质就是求一种操作X,要保证X是可逆操作,设其逆操作为Y, 也即,若 p X q = r 成立,那么一定有 r Y q = p 成立
那么首先令
a = a X b;
这样a保存了a和b进行X操作后的结果
然后再
b = a Y b
因为此时a = a X b, 又因为Y是X的逆操作,所以此时 b = a
最后再
a = a Y b
此时a = a X b, 但是 b = a,所以 a = b

纵观上面几种方法,它们的操作都是可逆的
加法 <-> 减法
乘法 <-> 除法
异或 <-> 异或 (异或操作的逆操作是它本身)

不使用第三方变量交换两个变量的值

这需要进行位操作,必较麻烦的, 在学习程序语言和进行程序设计的时候,交换两个变量的值是经常要使用的。通常我们的做法是(尤其是在学习阶段):定义一个新的变量,借助它完成交换。代码如下: int a,b;...
  • bird67
  • bird67
  • 2008年10月30日 19:34
  • 8884

JavaScript交换两个变量值的四种方法

交换变量值指的是两个变量之间的值相互交换,具体的方法可总结出四种 一、使用第三个变量(最简单,但不推荐) var a=3; var b=5; var t=a; b=a; b=t; console....
  • baidu_25343343
  • baidu_25343343
  • 2017年02月11日 12:33
  • 451

C语言小程序--交换两个变量的值

看到这个题目首先我们可以想到借助一个第三变量来实现 例如:a=10,b=20  我们想要交换a与b的值,可以借助一个第三变量temp,把a的值附给temp,把b的值给a,再把temp的值给b,就完成了...
  • her__0_0
  • her__0_0
  • 2016年03月16日 20:58
  • 6206

C语言交换两个变量数值的几种方法

因为经常见到这类题目,就自己总结了以下几种办法 1. 创建中间变量 这是最快也是最简单的办法,例如:#includeint main() { int a=10; int b...
  • ljx_5489464
  • ljx_5489464
  • 2015年11月25日 21:11
  • 13935

JAVA和C++ 交换两个变量的值的函数 区别

在程序开发的过程,要交换两个变量的内容,是一种比较常见的事情。在排序算法中,就有一种就叫做“交换排序法”。在所有的排序算法,交换要排序的集合中的两个元素,几乎是必须的过程。在Java中交换两个元素的内...
  • u010292827
  • u010292827
  • 2015年07月30日 11:24
  • 1762

C语言基础—实现两个变量交换的三种方法

C语言程序执行中,当定义了变量后,就相当于在内存中开辟了一部分的存储空间,不同空间存储的内容各异。在实际应用中,常常需要交换不同存储空间的内容,即变量内容的交换。用不同的思路,都能实现两个变量的交换。...
  • zhudong10
  • zhudong10
  • 2015年10月16日 21:04
  • 1811

C语言三种方法实现两个变量值的交换

一、利用一个临时变量来实现两个变量值的交换: #include int main() { int a = 10; int b = 11; int temp; temp = a; a ...
  • u014053368
  • u014053368
  • 2014年03月25日 00:28
  • 1573

不定义第三个变量,如何交换两个变量的值?

对于初学者来说,交换两个变量的值是一个很经典的算法。它实现起来很简单。 int a=1, b=5; int t; t=a; a=b; b=t; 很简单吧。但是,你有没有想过,如果不定义第三个变量,...
  • u011277123
  • u011277123
  • 2016年10月08日 11:09
  • 1921

java中交换两个变量的方法

重新听了一遍毕向东老师的java视频课,又收获了一些知识。嘻嘻。 目的是交换两个变量的值。这里介绍三种方法。 第一种方法:通过第三个变量。这个方法是最常用的。 int n=2,m=4...
  • u010597493
  • u010597493
  • 2017年01月09日 21:50
  • 338

两个变量交换值的三种方法

变量之间的三种交换方法
  • qq_32357509
  • qq_32357509
  • 2016年11月20日 17:18
  • 1976
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于交换两个变量
举报原因:
原因补充:

(最多只允许输入30个字)