1. 程式人生 > >不用中間變數交換兩個變數的值

不用中間變數交換兩個變數的值

解1:

加減法:該方法可以交換整型和浮點型數值的變數,但在處理浮點型的時候有可能出現精度的損失。

public void swap (int a, int b) {
    a = a + b;
    b = a - b;
    a = a - b;
}
解2:

異或法:可以完成對整型變數的交換,對於浮點型變數它無法完成交換。

異或運演算法則有:x ^ 0=x;x ^ x=0;a ^ b=b ^ a;

public void swap (int a, int b) {
    a = a ^ b;
    b = a ^ b;
    a =
a ^ b; }