变量取值交换的方法:不拘一格编程序之三
来源:优易学  2010-1-14 19:22:05   【优易学:中国教育考试门户网】   资料下载   IT书店
  【题目】已知两变量a和b,设计一个算法,交换a与b的值。
  【方法1】最传统,最广泛,最著名的方法,增加一个变量,代码如下:
  int a, b;
  int c;
  c=a;
  a=b;
  b=c;
  【方法2】不增加第三个变量,交换a和b的值,代码如下:
  int a, b;
  a = a+b;
  b = a-b;
  a=a-b;
  分析,设a和b的原始值为a,b
  执行代码                    变量a       变量b
  int a, b                    a           b
  a=a+b                       a+b         b
  b=a-b                       a+b        a+b-b=a
  a=a-b                       a+b-(b)=a+b-a=b          a
  【但是】本方法只适合与整型等,而且不能太大,否则会有溢出。
  【方法3】位运算
  执行代码                    变量a       变量b
  a=a^b;                     a^b        b
  b=a^b;                     a^b        a^b^b=a
  a=a^b;                     a^b^a=b    a
  (异或)
  【提问】我们平时都是使用方法1,方法2和方法3用的少,也知道后面两种比第1种方法少使用一个空间,但是后面两种方法应用在什么地方呢?
  【回答】:我暂时没有遇上非使用不可的地方。这里纯粹是研究研究,提供多种解题思路。

责任编辑:cyth

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训