如何将a,b的值进行交换,并且不使用任何中间变量
来源:互联网 发布:天池竞赛用什么算法 编辑:程序博客网 时间:2024/06/05 04:03
解析:
简而言之,用异或语句比较容易,而且不用担心越界的问题。
如果采用:
a=a+b;b=a-b;a=a-b;
这样做的缺点是如果a,b都是一个比较大的数,那么相加可能会超界
采用:
a=a^b;b=a^b;a=a^b;无需担心超界问题。
原理是按位异或运算
如果
a=00001001
b=00000101
那么
00001001(a)^00000101(b)=00001100(a);
00001100(a)^00000101(b)=00001001(b);此时b已经交换成a的值
00001100(a)^00001001(b)=00000101(a);a变成b的值
- 如何将a,b的值进行交换,并且不使用任何中间变量
- 如何将a、b的值进行交换,并且不使用任何中间变量
- 如何将a、b的值进行交换,并且不使用任何中间变量?
- 不使用任何中间变量如何将a、b的值进行交换
- a和b进行交换而不使用任何中间变量
- 不使用中间变量交换a和b的值
- 不使用中间变量的a,b值交换
- 不使用中间变量交换a和b的值
- 有两个变量a,b,不使用任何中间变量交换它们
- 如何不使用任何中间变量交换两个变量的值
- 交换a,b, 不使用中间变量
- 交换a,b, 不使用中间变量
- 交换两个数 a和b,不使用任何中间变量
- 不使用中间变量交换a,b值
- 不使用任何其他变量,交换a,b变量的值?
- 不使用中间变量,交换int型的 a, b两个变量的值
- 不使用中间变量交换变量a、b的值的延伸
- 不使用中间变量,交换int型的 a, b两个变量的值
- 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),
- UVa 10905 - Children's Game
- 大树的哲学(附公司神贴)
- 【ffmpeg + VS2010】编译包含libavutil\common.h后出现找不到inttypes.h的问题
- Adams中的阻尼比样条设置
- 如何将a,b的值进行交换,并且不使用任何中间变量
- listView1.SelectedItems选中行要注意count>0
- android
- 在Windows上开发PHP扩展模块
- 【转载】〖ASP.NET〗ASP.NET的五大数据控件浅谈
- C++ vector的定义及使用
- 【ZJOI2008】【link-cut tree】树的统计
- 串口从1~17全部被占用解决办法
- 对于校赛F题的一些思考