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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马晓飞 初级黑马   /  2015-6-12 13:00  /  1090 人查看  /  29 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

面试题:请用3种方法实现2个整数变量的交换。请说出方法的名字。谢谢!!!!!!!!

29 个回复

倒序浏览
可以用中间数替换,可以用加法来替换,可以用位运算中的异或运算,可以试下

点评

你说的3种方法中中间数和位运算都能实现。加法替换你看我理解的对吗? a=20,b=30; a=a+b; b=a-b; a=a-b;  发表于 2015-6-12 16:31
回复 使用道具 举报 1 0
只说方法就可以吗?用不用说下方法的实现方式

点评

最好能大概说一下方法的实现方式。  发表于 2015-6-12 16:33
回复 使用道具 举报
水蛭31 发表于 2015-6-12 13:54
可以用中间数替换,可以用加法来替换,可以用位运算中的异或运算,可以试下 ...

你说的3种方法中中间数和位运算都能实现。加法替换你看我理解的对吗?
a=20,b=30;
a=a+b;
b=a-b;
a=a-b;
回复 使用道具 举报
你说的3种方法中中间数和位运算都能实现。加法替换你看我理解的对吗?
a=20,b=30;
a=a+b;
b=a-b;
a=a-b;
回复 使用道具 举报
加减法,临时变量,异或运算
回复 使用道具 举报
虽然我已经知道了,还是感谢楼上的人说出来,让更多的人知道答案
回复 使用道具 举报
中间变量,加法,异或
回复 使用道具 举报
爱李萝卜 发表于 2015-6-12 18:12
中间变量,加法,异或

第二个应该是算术运算
回复 使用道具 举报
感谢楼上分享,忘了算术运算
回复 使用道具 举报
加减法交换貌似有前提,要防止溢出
回复 使用道具 举报
加法运算很好啊功能强大
回复 使用道具 举报
a=20,b=30;
a=a^b;
b=a^b;
a=a^b;
原理:一个数异或同一个数两次,还是原来这个数~{:2_30:}
回复 使用道具 举报
1.中间变量
2.异或
3.相加
回复 使用道具 举报
1.加法
2.异或
3第.三方变量
回复 使用道具 举报
1.第三方变量  int temp=a;a=b;b=temp; 2.不要第三方变量 a=a+b;b=a-b;a=a-b; 3.异或 a=a^b;b=a^b;a=a^b;
回复 使用道具 举报
学习了 ,谢谢
回复 使用道具 举报
第三方变量,异或运算,两数相加运算
回复 使用道具 举报
异或,第三方变量,还有就是通过两数相加
回复 使用道具 举报
1,用临时变量2用异或方法,加减法
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马