码迷,mamicode.com
首页 > 其他好文 > 详细

交换两个数的值

时间:2014-11-26 10:57:27      阅读:153      评论:0      收藏:0      [点我收藏+]

标签: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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!