让我们来看一道经典的编程题: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;