看到一道很老的题,但是发现了有意思的答案

lliiqiang 2010-09-02 06:20:59
题目是:不使用中间变量交换两个in a b的值

我的同事说出了一个很精彩的答案,我先不说,大家来猜,当然如果有人的答案更精彩那更好
...全文
355 38 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
38 条回复
切换为时间正序
请发表友善的回复…
发表回复
lliiqiang 2010-09-04
  • 打赏
  • 举报
回复
a=b+0*(b=a)
whcsdtc 2010-09-03
  • 打赏
  • 举报
回复
[Quote=引用 30 楼 lh63695853 的回复:]

这个问题是锻炼什么的?逻辑还是?
[/Quote]
这锻炼的是娱乐精神,just for fun.
xxkaishui 2010-09-03
  • 打赏
  • 举报
回复
int a = 10;
int b = 20;
a = b+((b=a)&0);
hovy_yang 2010-09-03
  • 打赏
  • 举报
回复
a=a+b;
b=a-b;
a=a-b;
lh63695853 2010-09-03
  • 打赏
  • 举报
回复
这个问题是锻炼什么的?逻辑还是?
leojing888 2010-09-03
  • 打赏
  • 举报
回复
+-的那个很经典.
凤朝凰 2010-09-03
  • 打赏
  • 举报
回复
又看到高手了
eggno8 2010-09-03
  • 打赏
  • 举报
回复
路过,每日可用分10分~
changxiaochuan 2010-09-03
  • 打赏
  • 举报
回复
学习了
HappyKeKe 2010-09-03
  • 打赏
  • 举报
回复
a = a - b;
b = b + a;
a = b - a;
showjim 2010-09-03
  • 打赏
  • 举报
回复
xchg a,b
sxdgundam 2010-09-03
  • 打赏
  • 举报
回复
坐等答案
androidmvc 2010-09-03
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 li0306 的回复:]

a=a^b b=a^b a=a^b
[/Quote]


+1
super_thinker 2010-09-03
  • 打赏
  • 举报
回复
学习了 原来很多方法都可以 我只知道一种
simple05 2010-09-03
  • 打赏
  • 举报
回复
好像多可以啊!
zhuzeitou 2010-09-03
  • 打赏
  • 举报
回复
异或吧
a=a^b;b=a^b;a=a^b;
yangjie19880826 2010-09-03
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wenwei19861106 的回复:]
a=a+b;
b=a-b
a=a-b;
不知道对不对
[/Quote]豁然开朗啊!!!
ycyyww 2010-09-03
  • 打赏
  • 举报
回复
[Quote=引用楼主 lliiqiang 的回复:]
题目是:不使用中间变量交换两个in a b的值

我的同事说出了一个很精彩的答案,我先不说,大家来猜,当然如果有人的答案更精彩那更好
[/Quote]这个问题很牛逼!!
ThinkCat 2010-09-03
  • 打赏
  • 举报
回复
异或,学习下
eggno8 2010-09-03
  • 打赏
  • 举报
回复
以前我一直以为异或运算的速度最快,因为只用一个机器周期,结果做了一个测试,java代码片段如下:

for (int i = 0; i < 100000000; i++) {
x1 ^= y1;
y1 ^= x1;
x1 ^= y1;
}
for (int i = 0; i < 100000000; i++) {
x2 = x2 + y2;
y2 = x2 - y2;
x2 = x2 - y2;
}
int temp = 0;
for (int i = 0; i < 100000000; i++) {
temp = y3;
y3 = x3;
x3 = temp;
}

结果
第一段异或的耗时230ms左右,第二段加减法的耗时220ms左右,第三段常规中间变量交换的耗时130ms左右。。。是java的原因还是怎么的?迷糊了
加载更多回复(18)
企业公司软件测试面试笔试集合 软件测试面试 (测试基础).doc 01_企业面试试卷(综合).doc 01_企业面试试卷(综合)_参考答案.doc 04_企业面试试卷(测试基础).doc 04_企业面试试卷(测试基础)_参考答案.doc 500强公司面试的经典正确与错误回答对比!!! 看看你的弱点.doc C面试.txt Java初学者都必须知道的六大问.doc 百度笔试.txt 北京博彦科技笔试+面试.doc 北京大学计算机科学技术研究所.doc 波尔世通的笔试+面试.doc 测试人员面试.doc 测试.doc 常见的测试(转贴).doc 传视数码公司的面试.doc 汉端笔试(7页).doc 合力金桥的笔试.doc 华为面试.doc 经典逻辑.ppt 联合网视面试.doc 美国英网软件公司目.doc 面试考(腾讯,招行等等).txt 某公司的面试试.doc 奇虎面试.doc 千像互动的笔试.doc 清华同方开发的面试 (有兴趣的看一下了 !).doc 缺陷的等级划分,一个经常被问到的问.doc 软件测试工程师笔试试(大集合).doc 软件测试工程师测试试大集合(二)包括答案.doc 软件测试工程师试发布版.doc 软件测试试.doc 软件评测复习知识点(小颖).doc 软通动力面试笔答.doc 瑞星笔试(15道).doc 神州泰岳测试试(笔试)转贴.doc 时力科技面试.doc 瓦瑟笔试(限男性).doc 喜安科 面试.doc 性能计算公式.txt 亚控科技比试.doc 一道测试notepad笔试.doc 一道数据库的笔试目.doc 一个外包测试公司的笔试!.doc 一家通讯公司的面试目.doc 英文自我介绍大全.doc 英语面试.doc 英语面试.doc 有意思的逻辑.doc 中软的面试(转贴).doc

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧