黑马程序员技术交流社区

标题: 对于两个整型变量进行值互换的几种方法!!面试必须有! [打印本页]

作者: 魏冬    时间: 2012-11-10 16:33
标题: 对于两个整型变量进行值互换的几种方法!!面试必须有!
本帖最后由 魏冬 于 2012-11-14 11:31 编辑

第一种
int x=3;
int y=6;
int z;(定义一个中间变量)
z=x;
x=y;
y=z;
第二种方法(有点不科学:D 不需要中间变量的互换)
x=x+y;
y=x-y;
x=x-y;
下面是第三种(也就是面试要面试的一种互换的方式  同学们,要注意了哦!!!!!)
x=x^y;
y=x^y;
x=x^y;第三种方法虽然效率高,但是可读性差,不容易理解。
作者: 何伟    时间: 2012-11-10 16:59
第一个最常用,第三个就是把一个数^两次它的值是不会变
作者: 崔利鹏    时间: 2012-11-10 19:50
哦哦 学习学习哈
作者: 魏冬    时间: 2012-11-10 23:34
b378989081 发表于 2012-11-10 16:59
第一个最常用,第三个就是把一个数^两次它的值是不会变

值不变? 我试了啊 第三种也变了啊?
作者: 张钧杰    时间: 2012-11-11 00:26
第一种最通用,声明一个中间变量,建议使用第一种。
作者: 杜正冬    时间: 2012-11-11 10:08
^怎么读的
作者: 何伟    时间: 2012-11-12 14:29
魏冬 发表于 2012-11-10 23:34
值不变? 我试了啊 第三种也变了啊?

我说的是一个数^同一个数两次他的值不会变
作者: 聽聽我dē❤    时间: 2012-11-12 16:32
开发用的也就是第一种啊,没什么掌握的,了解了解就行。
作者: 何伟    时间: 2012-11-27 15:14
魏冬 发表于 2012-11-10 23:34
值不变? 我试了啊 第三种也变了啊?

第三者方法的原理就是把一个数^两次它的值是不会变的,
作者: ssx0101    时间: 2012-11-27 18:15
第三中的解释:
(1)x=x^y;
(2)y=x^y;//用(1)取代x:(4)y=x^y^y=x
(3)x=x^y;//用(1)取代x,用(4)取代y:x=x^y^x=y




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2