黑马程序员技术交流社区
标题:
简单面试题,调换2个变量的值!
[打印本页]
作者:
红茶2331
时间:
2013-12-7 11:02
标题:
简单面试题,调换2个变量的值!
本帖最后由 红茶2331 于 2013-12-7 11:32 编辑
int a=(int)(Math.random()*100);
int
b=
(int)(Math.random()*100);
不使用其他变量,把a和b的值调换!
一个分号求出来的是天才;
2个分号求出来的是英才;
3个分号求出来的只算是人才;
我只能做到这个:
a=a+b //a=25,b=15
b=a-b //a=25,b=10
a=a-b //a=15,b=10
作者:
℡太阳当空照
时间:
2013-12-7 11:17
a=a+b-(b=a);
作者:
25343215
时间:
2013-12-7 11:20
℡太阳当空照 发表于 2013-12-7 11:17
a=a+b-(b=a);
{:soso_e179:}
作者:
红茶2331
时间:
2013-12-7 11:36
℡太阳当空照 发表于 2013-12-7 11:17
a=a+b-(b=a);
厉害啊,
作者:
半夜雨半夜雨
时间:
2013-12-7 11:57
a=a^b^a;
b=b^a^b;
是这样吗
作者:
翼展哈哈
时间:
2013-12-7 12:25
我总结一下吧,毕老师的视频里提供了3种变量a,b互换数值的方法:
1、使用中间变量temp:
int temp = a;
a = b;
b = a;
复制代码
2、不使用中间变量,但是容易溢出
a = a + b;
b = a - b;
a = a - b;
复制代码
3、不使用中间变量,使用异或符号的技巧型方法
a = a ^ b;
b = a ^ b;
a = a ^ b;
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2