不使用第三个变量交换两个变量的值
小结一下:
给出两个变量:var a = 1, b = 2;
方法一:
a = a + b;
b = a - b;
a = a - b;
a, b 的值已经交换。
方法二:
a = a ^ b;
b = a ^ b;
a = a ^ b;
a, b 的值已经交换。
原理:异或运算,任意一个数与任意一个给定的值异或两次,其值保持不变。
方法三:
a = b + (b = a) * 0; 或者
a = (a + b) - (a = b);
a, b 的值已经交换。
转载于:https://www.cnblogs.com/wuzhenbo/archive/2012/04/25/2469223.html
不使用第三个变量交换两个变量的值相关推荐
- php比较两个变量的值_总结PHP不用第三个变量交换两个变量的值的几种方法
"PHP不用第三个变量交换两个变量的值"这个题看到过好多次了,看来面试确实喜欢考这道题.今天,对于这个题目,我自己总结了几种方法,可能不全,大家来互相补充. 有些仅适用于字符串,方 ...
- C++不借助第三变量交换两个变量的值
C++不借助第三变量交换两个变量的值 源代码: #include<iostream> using namespace std; int main(){int x,y;cout<< ...
- 不用额外变量交换两个整数的值
题目 如何不用任何额外变量交换两个整数的值 基本思路 如果给定整数a和b使用如下三行代码即可交换a和b的值: a = a ^ b b = a ^ b a = a ^ b 如何理解这三行代码的具体功能呢 ...
- PHP中不用第三个变量交换两个变量的值
相信大家在PHP面试或者学习中经常会遇到这个问题就是"不用第三个变量来交换两个变量的值",今天正对这个问题来讨论一下: 第一种方法:首先会想到的 这种方法简单可行,顺利的交换了两个 ...
- 不使用第三变量交换两个变量的值
在 Java 中,经常会需要交换两个变量的值,我们一般是使用第三变量完成,比如 temp = a; a = b; b = temp; 这样的写法确实能达成目标,但因此而引入了第三变量,对资源的消耗增加 ...
- 不用引入第三变量交换两个变量的值
前几天发现了一个问题:有人告诉我,要进行变量交换,就必须引入第三变量! 假设我们要交换a和b变量的值,如果写成 int a=5,b=10; a=b; b=a; 那么结果就是两个都是10,理由不言而喻. ...
- 不借助第三方变量交换两个变量的值(多种方法)
转载自:https://blog.csdn.net/kangkermit/article/details/21371159 通常我们的做法是(尤其是在学习阶段):定义一个新的变量,借助它完成交换.代码 ...
- 不允许创建临时变量交换两个变量的内容
在学习C语言的时候,涉及到两个变量值的交换,其中用到临时变量.如果在没有临时变量的情况下,该如何做呢? 方法一:C语言提供的异或运算就可以实现这样的操作.异或运算符"^"也称&qu ...
- Java中三种方法交换两个变量的值
1.中间变量 是最普也是最广泛使用的交换方式: 这种方法很容易理解,就是创建temp中间变量,m把值给temp,n给m,temp将m的值给n,这样就实现了交换. 2.加减运算 前提只能是数字 因为这种 ...
最新文章
- Java锁的种类以及辨析(二):自旋锁的其他种类
- POJ1904 强联通(最大匹配可能性)
- postman自动打开_postman第1讲-开篇:介绍与安装
- 复习笔记(一)——C++基础
- how you can go to attend eap freely?
- VTK:PolyData之PointCellIds
- SQL Server 查询数据库中所有的表名及行数
- mysql dp.cal 显示汉子_计算1到N中各个数字出现的次数 --数位DP
- Hadoop 系列之 1.0 和2.0 架构
- linux 防arp 带宽,linux下防arp
- linux root权限不够_Linux基础篇之用户管理
- 最全中文停用词表整理(1893个)
- redis下载安装教程(详细步骤)
- python爬取基金净值_Python爬虫周记之案例篇——基金净值爬取(上)
- WePhone手机软件已下架 疑因资金问题导致无法使用
- Android自定义view 滑动开关 支持左右滑动 适用于listview
- MySQL——我的学习笔记
- cancel java_Future.cancel()疑难杂症
- 7-2 多分支表达-数据奇偶判断
- 产品开发中,TR是技术评审节点。
热门文章
- JZOJ 5426. 【NOIP2017提高A组集训10.25】摘Galo
- 如何判断离散数组 是递增趋势_如何用切线技术判断市场趋势?
- java生成word 框勾_Java 使用模板生成 Word 文件---基于 Freemarker 模板框架
- map怎么转化dto_java实现Object和Map之间的转换3种方式
- python的类与模块_Python类与模块属性
- 教你保存在线视频文件
- iis服务器怎样配置多张证书,IIS配置多个ssl怎么做?怎么配置?
- 三级C语言上机考试试题与题解,全国计算机等级三级C语言上机试题逐题解析
- access后台链接mysql_ASP.NET连接 Access数据库的几种方法
- nutzwk oracle,NutzWk插件使用