精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (10)
|
|
---|---|
作者 | 正文 |
发表时间:2011-07-13
pop1030123 写道 lj830723 写道 haohouhou 写道 b = a + 0*(a = b)
当你们都在关注java异或操作的时候,是不是忘记了这一个犹如天马行空的创意思维 嗯,似乎是一个很好的解法唉。还需要验证一下。 验证了,很有创意 |
|
返回顶楼 | |
发表时间:2011-07-13
三种方法总结:
1、 2、 3、 结束。 |
|
返回顶楼 | |
发表时间:2011-07-13
最后修改:2011-07-13
haohouhou 写道 b = a + 0*(a = b)
记得当年老师说过 程序员能一行解决的问题绝对不写两行 |
|
返回顶楼 | |
发表时间:2011-07-13
最后修改:2011-07-13
sue1108 写道 pop1030123 写道 lj830723 写道 haohouhou 写道 b = a + 0*(a = b)
当你们都在关注java异或操作的时候,是不是忘记了这一个犹如天马行空的创意思维 嗯,似乎是一个很好的解法唉。还需要验证一下。 验证了,很有创意 dim a,b a=10 b=11 b = a + 0*(a = b) msgbox a &"-"&b int a=10,b=11; b = a + 0*(a = b); printf("a=%d,b=%d",a,b); vbs 验证失败,返回结果a=10,b=10 VC2010验证失败,返回结果a=11,b=11 证明:此写法不够通用。只能在特定语言环境下使用。 |
|
返回顶楼 | |
发表时间:2011-07-13
lyw985 写道 jancy 写道 zhangyang6380006 写道 我记得我上次面试也问了这个,我当时顿住了,10钞后想出来了,没有第三变量,必然是两个变量相加和相减操作,a=a+b;b=a-b;a=a-b;
如果2个变量都是数字,这样可以 字符串的话,就不行了。 这样比较通用: b ^= a ^= b ^= a; 写这么复杂。。。。。 实际上就是异或操作 a=a^b; b=b^a; a=b^a; +1 |
|
返回顶楼 | |
发表时间:2011-07-13
代码不是越复杂越好
要清晰易懂,这样有利于工作交接和代码维护 |
|
返回顶楼 | |
发表时间:2011-07-16
最后修改:2011-07-16
haohouhou 写道 b = a + 0*(a = b)
呵呵,感觉还可以! |
|
返回顶楼 | |
发表时间:2011-07-16
lyw985 写道 jancy 写道 zhangyang6380006 写道 我记得我上次面试也问了这个,我当时顿住了,10钞后想出来了,没有第三变量,必然是两个变量相加和相减操作,a=a+b;b=a-b;a=a-b;
如果2个变量都是数字,这样可以 字符串的话,就不行了。 这样比较通用: b ^= a ^= b ^= a; 写这么复杂。。。。。 实际上就是异或操作 a=a^b; b=b^a; a=b^a; |
|
返回顶楼 | |
发表时间:2012-02-22
a=b+(b=a)-a
|
|
返回顶楼 | |
发表时间:2012-02-22
javaii 写道 出这种面试题的就是闲的蛋痛,有个叼用
表示相当的蛋疼 |
|
返回顶楼 | |