众所周知,变量交换可以不使用中间变量。
可以这样:
void exchange(int &a, int &b){
a^=b^=a^=b;
}
或者这样:
void exchange(int &a, int&b){
a = a+b;
b = a-b;
a = a-b;
}
但是这个有个小trap,如果a和b引用同一个变量就会都变成0。
所以,需要先判断a,b是否相等。
众所周知,变量交换可以不使用中间变量。
可以这样:
void exchange(int &a, int &b){
a^=b^=a^=b;
}
或者这样:
void exchange(int &a, int&b){
a = a+b;
b = a-b;
a = a-b;
}
所以,需要先判断a,b是否相等。