Java 不用中间变量,实现int a,b的交换

来源:百度知道 编辑:UC知道 时间:2024/06/04 05:54:27

例如a=1,b=2
b=a+b;这时a=1,b=3
a=b-a;这时a=2,b=3
b=b-a;这时a=2,b=1交换了

a=a^b; b=a^b; a=a^b;
那个符号是异或!逻辑运算符!
还可以这么做!
a=a+b;
b=a-b;
a=a-b;

字符串你怎么办。
用栈或者队列放进去,再取出来。
只说不用中间变量,没说不可以用数据结构吧。哈
public void changeValue(int a, int b){
//用栈。先进后出;
Stack stack<Integer> = new Stack<Integer>();
stack.push(a);
stack.push(b);
//b的值赋给a
a = stack.pop;
//a的值赋给b
b = stack.pop;
}

b=a+b;
a=b-a;
b=b-a;