一个程序员面试题,测试一下你的思维。
本帖最后由 海阔天空mft 于 2011-12-15 20:24 编辑刚看到一个题,拿来和大家分享:Integer 变量A,B, 在不声明其它变量的情况下,将他们的值交换,
如:A:=1; B:=2; 交换后, A=2, B=1,
大家先好好想想,然后再看答案哦。(回复即可看答案)。
**** Hidden Message *****
http://bbs.fishc.com/xwb/images/bgimg/icon_logo.png 该贴已经同步到 海阔天空mft的微博 {:1_1:}VB想出来了,不知道对不~ 用位运算应该是吧? 很是有趣{:5_105:} 异或运算
X^1=!X (!X)^1 =X
X^0=X X^0 =X
A=2B=1
A= A^ B;
B= B^A;
A= A^ B; 用异或操作 我想问问,能不嫩直接赋值 push a
push b
pop a
pop b
a=a+b
b=a-b
a=a-b a:=1 b:=2
a:=a+b; a=3
b:=a-b; b=1
a:=a-b; a:=2
a:=2 b:=1;
楼主学的Delphi? 这样行不行
A=(A+B)-A;
B=(A+B)-B;
{:5_108:} 本帖最后由 北归小杰 于 2011-12-16 09:23 编辑
还是错了{:5_96:}
看来我还得继续努力啊{:5_90:}
测试的是思维,不是算法? 汇编 XCHG:victory: -。-都好强啊 试试... 异或操作吧 看一看!啊 回复看代码 {:5_94:} 看看 wqrwerewwwwwwwwwww