打印

两个数据交换,不能用第三个变量?

[复制链接]
4592|23
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
areshan|  楼主 | 2011-4-11 14:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
sdpz| | 2011-4-11 14:42 | 只看该作者
b = b ^ a;
a = a ^ b;
b = b ^ a;
这东西需要有经验并且记住。面试时考脑筋急转弯有点为难人。

使用特权

评论回复
评分
参与人数 1威望 +4 收起 理由
McuPlayer + 4 OK
板凳
ayb_ice| | 2011-4-11 15:01 | 只看该作者
其实这只是考你的思维能力
上面的效率其实比较低,不如定义个中间变量

使用特权

评论回复
地板
zhesiniya| | 2011-4-11 15:02 | 只看该作者
a=a+b;
b=a-b;    //原来的a给b
a=a-b;   //a+b-原来的a=原来的b
OK了。

使用特权

评论回复
5
ljm810010| | 2011-4-11 15:51 | 只看该作者
a=a*b;
b= a/b;
a=a/b;
-----------------
a=pow(a,b);
b=pow(a,1/b);
a=pow(a,1/a);:lol

使用特权

评论回复
6
lihui19839| | 2011-4-11 17:18 | 只看该作者
使用4和5楼的方法虽然也可以,但是如果数据溢出了咋办?建议还是用逻辑来做比较好。

使用特权

评论回复
7
ljm810010| | 2011-4-11 17:20 | 只看该作者
4楼的数据就算溢出,结果仍然正确。
5楼的都是浮点。

使用特权

评论回复
8
areshan|  楼主 | 2011-4-11 17:23 | 只看该作者
还来这样!记住了,以后再也不会被人给唬住了!

使用特权

评论回复
9
areshan|  楼主 | 2011-4-11 17:25 | 只看该作者
先合体,在分身!有点意思!

使用特权

评论回复
10
SmartEnergy| | 2011-4-11 17:33 | 只看该作者
瞒天过海,内在逻辑是隐含使用了ALU。

1. a+b=>ALU
2. ALU-a=>a
3. ALU-b=>b

使用特权

评论回复
11
jack_shine| | 2011-4-11 22:24 | 只看该作者
恩,学习了

使用特权

评论回复
12
xlsbz| | 2011-4-11 22:26 | 只看该作者
能否解释详细点   看不懂啊  怎么弄的 挺厉害啊

使用特权

评论回复
13
ejack| | 2011-4-12 08:02 | 只看该作者
异或运算的天然属性……

使用特权

评论回复
14
huangqi412| | 2011-4-12 08:45 | 只看该作者
这个题跟卖弄运算符优先级一样华丽丽。

使用特权

评论回复
15
batsong| | 2011-4-12 08:52 | 只看该作者
C语言教学考试都是大纱布

成天纠结优先级,结合性,加个括号纠结的一比

使用特权

评论回复
16
Wxy8030| | 2011-4-12 09:19 | 只看该作者
考这个题目纯属于吃饱了撑的!

如果有企业考这个题目,这种狗屁地方不去也罢!

使用特权

评论回复
17
刘前辈| | 2011-4-12 10:06 | 只看该作者
二楼应该是面试官期望的正解。——没有再好的了。照此做出来就可以被录取了。
b = b ^ a;
a = a ^ b;
b = b ^ a;

其实这是逻辑代数初等解法,不好证明的。记得当年上课教授证明这个等式的时候,是拿了2个实际二进制数证明的,比如a=0x55,b=0xaa; ——这算什么证明?如今大学里教授就这水平?
结论当然是: 一个二进制数b经过与另一个数a 2次(或者偶数次)抑或运算之后,仍还原为b:   即:     b^a^a=b;

既然教授都没证明,那就不好**了。死记硬背呀!

谁能证明一下?我知道,面试官也不过是看了书上的考试题来出题,其实他也证明不了。
谁能换一种让面试官不知道的,书上没讲过的写法,那面试官肯定立马下课。

就到这个企业去,去了就当人力资源管理部经理。

使用特权

评论回复
18
mbutterfly| | 2011-4-12 10:10 | 只看该作者
恩,不是C语言的所有东西都适合到实际应用中的。如果题目能考代码量,RAM占用大小,运行时间等,还比较实际

使用特权

评论回复
19
abin0415| | 2011-4-12 13:01 | 只看该作者
谭浩强的C语言书(第三版)里第十二章有这个。第321页,12.1.3节。好好看看书吧。

使用特权

评论回复
20
hongdan0714jin| | 2011-4-12 13:17 | 只看该作者
2# sdpz
我们c++老师介绍完之后,明确警告她的学生不允许用这方法。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

127

主题

728

帖子

0

粉丝