我们介绍几种不通过第三个变量来交换两个变量的值的方法
1.通过位运算的形式
a=a^b;
b=b^a;
a=a^b;
其主要通过a^a=0,0^x=x的原理
2.通过自加自减的形式
a=a+b;
b=a-b;
a=a-b;
其原理与上一种大同小异
代码如下:
import java.util.Scanner;
public class Main {
public static void main(String []args)
{
Scanner scan=new Scanner(System.in);
while(scan.hasNextLong())//相当于cin>>n和scanf("%d",&n)!=EOF
{
long a=scan.nextLong();
long b=scan.nextLong();
System.out.println("a="+a+",b="+b);
a=a^b;//方法1
b=b^a;
a=a^b;
System.out.println("a="+a+",b="+b);
a=a+b;//方法2
b=a-b;
a=a-b;
System.out.println("a="+a+",b="+b);
}
}
}