你不可不知的交换两个变量值的三种方法

大四上的时候,刚考完研,闲着没啥事情做去找了一份工作,笔试题有一题:写出一种不使用中间变量就能交换两个变量值的方法。当时,我真的就只知道那一种大家耳熟能详的的用一个中间变量的方法,绞尽脑汁,最后本着宁可写错也绝不留空白的的思想,把添加中间变量的的那个方法写上去了。
最近在一篇博客上又看到了这个问题,这次打算详细的介绍一下相关的方法,这几个方法,尤其是第二个和第三个一定要掌握呀,这对于你以后肯定会有帮助的。

  1. 添加一个中间变量进行交换两个变量的值,这个真的太基础了,默认你们都知道了。
  2. 加法,先上公式
    a = a + b;
    b = a - b;
    a = a - b;
    下面列个表格就很清楚了
[ ] a的值 b的值
初始值 a b
a = a + b a + b b
b = a - b a + b ( a + b) - b == a
a = a - b (a + b) - [(a + b) - b] == b a
结果 b a

但是有可能会出现溢出的问题。
3. 异或,先上公式(一定要记住这个方法)
a = a ^ b;
b = a ^ b;
a = a ^ b;
下面列个表格就很清楚了

[ ] a的值 b的值
初始值 a b
a = a ^ b a ^ b b
b = a ^ b a ^ b ( a ^ b) ^ b == a
a = a ^ b (a ^ b) ^ [(a ^ b) ^ b] == b a
结果 b a

最后再提一下,我投的那个公司最后还发了offer,但是----薪水真的太低了。。。最后回绝了。。。
上面的方法看懂的话,可否赏个赞那。

发布了24 篇原创文章 · 获赞 18 · 访问量 8196

猜你喜欢

转载自blog.csdn.net/qq_40287633/article/details/105332371