标签:style blog ar color sp java 数据 div log
交换两个数的值,java实现,代码如下:
class OperateMark { public static void main(String[] args) { //原始数据 int a=1,b=3,temp=0; System.out.println("a="+a+" b="+b+" temp="+temp); //常规方法交换数的值,并打印输出。 temp=a; a=b; b=temp; System.out.println("a="+a+" b="+b); //不出现中间变量的方法一。 a=a+b; b=a-b; a=a-b; System.out.println("a="+a+" b="+b); //不出现中间变量的方法二。 a=a^b; b=a^b; a=a^b; System.out.println("a="+a+" b="+b); //最简单的方法。 System.out.println("a="+b+" b="+a); }
出现中间变量的方法为常规方法最容易想到,两个容器里面装着东西,想要把他们里面装的东西互换,需再找一个容器当中间人,就可以了。
不需要中间变量的方法一,先把他们求了个和a+b,赋值给a,此时a-b=a+b-b=a,把这个值赋给b,即把原始的a赋值给b。然后再运算a-b=a+b-a=b,把此值赋给a,就实现的两数交换。
方法三和方法二思路一样,用到了一个规律,a==a^b^b。交换律在这个运算里依然成立。
方法四最简单快捷了,你不觉得吗?
标签:style blog ar color sp java 数据 div log
原文地址:http://www.cnblogs.com/jianmo-o/p/4122425.html