3种方法解决交换两个数

来源:互联网 发布:网络红人毒药身世 知乎 编辑:程序博客网 时间:2024/06/05 10:53

让我们来看一道经典的编程题:int  a= 7;int b = 9;请通过编程交换a与b的值。

解法一:

       通过引入第三个数来用来做中转站:

       int c =  a; //目的将a的值赋给 c,此时a和c 的值都为7;

       a = b;//目的将b 的值赋给a,此时a和b 的值都为9;

      b = c;//目的将c的值付给b,此时b和c的值都是9;

              最终通过以上步骤,a=9;b=7(c =9),从而实现交换a与b的值。

解法二
       通过加减法来实现:

       a = b+a;// 此时a的值为7+9,b为9

       b=a-b;//此时b 的值为7+9-9;此时a的值为7+9

       a=a-b;//此时a的值为7+9-7,b的值为第7+9-9

解法三

       通过位运算符来实现:

       a=a^b;//a的值为a^b

       b=a^b;//b的值为a^b^b,即 a

       a=a^b;//a 的值为a^b^a即 b

       位运算符相同为假,不同为真。主要运用的原理是a^a的值是0,0^ b的值是 b;

 

原创粉丝点击