【高薪就业必备03】java中对两个数在不用第三方变量互换?

今日笔试题:
                 
对两个整数变量进行互换,要求在不使用第三方变量的前提下?
       相信对于这个题目,大家都不陌生,在学习Java基础班的时候,都会学习这个题目的做法,但是当你们学习完半年后,还能记住怎么做吗?有童鞋说:老师,我刚学完3天就忘了!老师,我当时就没听懂!!!那么对于这种情况怎么办呢?老师教你们
个方法(也是思想)。
 
在这里我把思考的过程和演算的过程都写下,面试的时候,你们只需要写下最终
的结果就可以了。
     1,我们知道一个数异或另一个数2次,结果还是这个数。举例:2^3^3=2.这个
大家明白吧,应该没问题.同样,3^2^3=2,其实我只是把顺序换了下位置,这个都不难理解 .
     2, 题目中不是说两个整数变量吗?那么我们就设两个整数变量.比如: int x = 2; int y = 3;现在我们就把这两个数用异或的方法进行数值
换位.
     3,由于我们人的思想习惯是xy的顺序,那么我们就先来换位x,于是有:
         x = x^y;//此时x=2^3.这时再算出y,于是有
         y = x^y;//相当于2^3^3=2,这时的y=2,我们完成了一个换位.于是开始换x.
        此时x^y=2^3^2=3,那么我们就把这个值赋给x,那么就是
         x = x^y;//相当于2^3^2=3.这时x=3;
        那么到这里,这道笔试题就算做完了,大家看是不是很简单.如果你不用数字代换的话,很
容易就迷失在xy的替换中,那么当你用注解的形式写出数字代换过程,这个题就是白给的分.



        最后,董老师告诫大家学习java基础主要学习思想,其次才是代码

 

 

 

另解:

两数字相加减也可以达到相同的效果

 

a = a + b

b = a - b

a = a - b

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值