Java不借助第三变量实现两数交换的示例

网友投稿 275 2022-08-28


Java不借助第三变量实现两数交换的示例

目录基操进阶更进阶PS:不借助第三个变量实现两个变量的交换(数字或者字符串)

基操

两数交换最简单最容易理解的就是借助第三变量

public void swapOne(){

int a = 4;

int b = 5;

int c = a;

a = b;

b = c;

System.out.println("a:"+a); //a:5

System.out.println("b:"+b); //a:4

}

进阶

利用数学计算

public void swapTwo(){

int a = 4;

int b = 5;

a=a+b;

b=a-b;

a=a-b;

System.out.println("a:"+a); //a:5

System.out.println("b:"+b); //a:4

}

更进阶

利用异或运算

public void swapThree(){

int a = 4;

int b = 5;

a = a ^ b; // 0101 ^ 0100 ===> 0001,此时a的值为1

b = a ^ b; // 0001 ^ 0100 ===> 0101,此时b的值为5

a = a ^ b; // 0001 ^ 0101 ===> 0100,此时a的值为4

System.out.println("a:"+a); //a:5

System.out.println("b:"+b); //a:4

}

PS:不借助第三个变量实现两个变量的交换(数字或者字符串)

//利用php spl标准类库中的栈数据结构,先进后出实现

$a = 'abcde';

$b = 'efghi';

$stack = new SplStack();

$stack->push($a);

$stack->push($b);

$a = $stack->pop();//efghi

$b = $stack->pop();//abcde

//利用坐标轴上的两点距离数学计算

$a = 10;

$b = 12;

$a = $b - $a;

$b = $b - $a;//10

$a = $b + $a;//12

//利用位运算中的^

$a = 10;

$b = 12;

$a = $a ^ $b;

$b = $b ^ $a; //10

$a = $a ^ $b; //12


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:python中的模块与包(python模块和包的关系)
下一篇:Python从门到精通(二):包装-02-异常处理和日志
相关文章

 发表评论

暂时没有评论,来抢沙发吧~