18 不使用中間變數,實現兩個數的交換 JAVA

2021-06-09 07:40:38 字數 763 閱讀 1367

1、普通的方法,使用乙個中間變數temp,可以使用引用

void swap(int &a,int &b)

}//輸出結果為:4

4、不使用中間變數,使用加減的方法

void swap(int *a,int *b){

*a = *a + *b;

*b = *a - *b;

*a = *a - *b;//以上三句等於 *a = *a + *b - (*a -*b);

5、不使用中間變數,使用乘除的方法

void swap(int a ,int b){

a = a*b;

b = a/b;

a = a/b;

總結:1)加減法、乘除法、異或法

2)使用中間變數(指標、引用)

3)當要求不使用指標,並且不使用中間變數時,只能使用異或法

4)當是浮點數時,不能使用異或法

5)當b為0時,不能使用乘除法

6)不使用中間變數,如何交換三個數??

void swap(int &a,int &b){

a ^= b;

b ^= a;

a ^= b;

int main(){

int a=1;b=2;c=3;

swap(a,b);

swap(b,c);

printf(...);

return 0;

不使用中間變數交換兩個數

在交換兩個數的值時,最經常使用的方法是借助於乙個中間變數來進行交換。temp a a b b temp 通過巧妙的加法與減法運算來實現兩個數的交換。a a b b a b a a b 使用位運算 異或 來交換兩個數。a a b b a b a a b 其正確性是因為異或運算滿足 交換律和 結合律。證...

不使用中間變數交換兩個數

在交換兩個數的值時,最經常使用的方法是借助於乙個中間變數來進行交換。temp a a b b temp 通過巧妙的加法與減法運算來實現兩個數的交換。a a b b a b a a b 使用位運算 異或 來交換兩個數。a a b b a b a a b 其正確性是因為異或運算滿足 交換律和 結合律。證...

不使用中間變數實現兩個變數的交換

在實現程式功能時,我們經常要進行變數數值的交換,最近學習到在c語言中不用定義新變數來實現兩個變數數值的交換的方法,跟大家分享一下!下面是演算法的實現 include int main 程式可能有點難理解。在順序結構程式中,程式一條一條的依次執行。為了避免值和變數名的混淆,假定使用者輸入的是a0和b0...