精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (10)
|
|
---|---|
作者 | 正文 |
发表时间:2011-07-12
异或异或异或异或
|
|
返回顶楼 | |
发表时间:2011-07-12
marcolee 写道 public void swap(int a ,int b){
b = a + b; a = b - a; b = b - a; System.out.println(" a = " + a ); System.out.println(" b = " + b ); } 小心阿,这样有可能会越界 |
|
返回顶楼 | |
发表时间:2011-07-12
出这种面试题的就是闲的蛋痛,有个叼用
|
|
返回顶楼 | |
发表时间:2011-07-12
qwaz 写道 marcolee 写道 public void swap(int a ,int b){
b = a + b; a = b - a; b = b - a; System.out.println(" a = " + a ); System.out.println(" b = " + b ); } 小心阿,这样有可能会越界 怎么越界? |
|
返回顶楼 | |
发表时间:2011-07-12
marcolee 写道 public void swap(int a ,int b){
b = a + b; a = b - a; b = b - a; System.out.println(" a = " + a ); System.out.println(" b = " + b ); } +1 |
|
返回顶楼 | |
发表时间:2011-07-12
bloodstorm 写道 //交换a和b的值 public void swap(int a ,int b){ int temp = a; a = b; b = temp; } 要求:修改此方法,不能定义temp中间变量,实现值得交换 ...没想到怎么搞。。。 这样的公司不去也罢,牺牲可读性的代码维护起来,你懂的 |
|
返回顶楼 | |
发表时间:2011-07-12
b = a + 0*(a = b)
|
|
返回顶楼 | |
发表时间:2011-07-12
a + b不会溢出么?
好像可以通过异或操作来的。 |
|
返回顶楼 | |
发表时间:2011-07-12
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; 这个是正解。 很疑问,这道题究竟是考的啥能力?考察程序员是否变态? |
|
返回顶楼 | |
发表时间:2011-07-12
java不是传值的吗?
|
|
返回顶楼 | |