A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 红茶2331 中级黑马   /  2013-12-7 11:02  /  1040 人查看  /  5 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 红茶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                                                               
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

5 个回复

倒序浏览
a=a+b-(b=a);  

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报 1 0
回复 使用道具 举报
回复 使用道具 举报
a=a^b^a;
b=b^a^b;
是这样吗
回复 使用道具 举报
我总结一下吧,毕老师的视频里提供了3种变量a,b互换数值的方法:
1、使用中间变量temp:
  1. int temp = a;
  2. a = b;
  3. b = a;
复制代码

2、不使用中间变量,但是容易溢出
  1. a = a + b;
  2. b = a - b;
  3. a = a - b;
复制代码

3、不使用中间变量,使用异或符号的技巧型方法
  1. a = a ^ b;
  2. b = a ^ b;
  3. a = a ^ b;
复制代码

评分

参与人数 1技术分 +1 收起 理由
简★零度 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马