在不借助中间变量的前提下,交换两个变量的值
借助中间变量,可以很方便的交换两个变量的值。如果不借助中间变量,同样可以达到交换变量的目的。
数值相加减进行交换
int a = 10;
int b = 12;
a = b - a; //a = 2, b = 12
b = b - a; //a = 2, b = 10
a = b + a; //a = 12,b = 10
这种方法的原理是,把a和b看做数轴上的点,围绕两点间的距离进行计算。
具体过程:
- a = b - a计算出了a和b两点之间的距离,并将其保存在a中。
- b = b - a计算出了a到原点的距离,并将其保存在b中。
- a = b + a计算出了b到原点的距离,并将其保存在a中。
这种方法的缺点在于只能用于数字类型,字符串类型不可以。而且a+b可能超出int的范围。
位移运算进行交换
int a = 10;
int b = 12; //a=1010^b=1100;
a = a ^ b; //a=0110^b=1100;
b = a ^ b; //a=0110^b=1010;
a = a ^ b; //a=1100=12;b=1010;
这种方法,原理在于异或运算的特点,通过异或运算能够使得数据中的某些位翻转,其他位不变。
这就意味着任意一个数与任意一个给定的值连续异或两次,值不变。
不利用临时变量,交换两个变量的值
在不借助中间变量的前提下,交换两个变量的值相关推荐
- 没有第三个变量的前提下交换两个变量_JavaScript 交换值的方法,你能想到几种?
早期之前,在 JS 中交换值,我们主要还是使用临时变量.ES6 之后,我们可以使用展开运算符号来交换变量,除了这两种方式,你还能想到哪些呢? 本文主要介绍 交换变量的 10 种方法,请过目 1. 使用 ...
- 没有第三个变量的前提下交换两个变量_多变量相关性分析(一个因变量与多个自变量)...
目录: 前言 偏相关或复相关 意义与用途 分析方法: 1. 样本相关系数矩阵.相关系数检验 2. 复相关分析 3. 决定系数 (RMSE的介绍) 小结 一.前言: 继上一篇文章,继续探讨相关性分析,这 ...
- 用html5交换两个变量的值,Python判断两个对象相等的原理 python交换两个变量的值为什么不用中间变量...
python语言设计一个类代表花,其中含2个对象属性,2class flower: def __init__ (self, name, shape): self.name = name self.sh ...
- C++不借助第三变量交换两个变量的值
C++不借助第三变量交换两个变量的值 源代码: #include<iostream> using namespace std; int main(){int x,y;cout<< ...
- python交换两个变量的值_python交换两个变量的值方法
python交换两个变量的值方法 大部分语言,例如c语言,交换两个变量的值需要使用中间变量. 例如交换a,b 伪代码: tmp = a a = b b = tmp python里面可以实现无临时变量的 ...
- 交换两个变量的值,不使用第三个变量的四种法方
交换两个变量的值,不使用第三个变量的四种法方 通常我们的做法是(尤其是在学习阶段):定义一个新的变量,借助它完成交换.代码如下: int a,b; a=10; b=15; int t; t=a; a= ...
- 简单算法实现交换两个变量的值
谈到算法,好多人都感到脑壳疼,我也不例外.主要是平时工作忙,下班了还有各种进步,基本对算法这一块研究的较少.算法可以称之为前辈智慧的结晶.算法的好坏更多的是从时间复杂度,空间复杂度来考量的.对于我 ...
- C语言中的关键字,变量的定义,变量的命名规则,交换两个变量的值,驼峰命名法【 C语言变量名命名法则】
C语言结构 C语言中的关键字 变量 变量的定义 变量的命名规则 交换两个变量的值 驼峰命名法 C语言结构 上图中我们可以看到最外层是程序,内部是所有的构成,我们从最里面开始说明. 当我们用计算机语言来 ...
- Python中有几种办法交换两个变量的值?
交换两个变量的值方法,这个面试题如果只写一种当然很简单,没什么可以说的.今天这个面试是问大家有几种办法来实现交换两个变量的值 .在没开始看具体答案前,你可以先想想看 . 下面分别来说说这几种方法: 1 ...
最新文章
- 阿里HBase的数据管道设施实践与演进
- 打印N个数组整体最大的TopK
- 微服务架构下,静态数据通用缓存机制!
- PW Live 直播 | 北邮博士生纪厚业:异质图神经网络之模型和应用
- 看完后完全了解 Vue 2.0 和 Vue 3.0 的区别
- L. Coordinate Paper(CCPC 长春)构造
- curl 请求日志_kong api网关日志 将请求和响应数据附加到磁盘上的日志文件中
- Java 字符串常用操作(比较、查找位置、删除字符、替换字符串、反向输出、是否存在、分割字符串、大小写转换,区域比较、拼接字符串)
- 图像语义分割 —利用Deeplab v3+训练VOC2012数据集
- 解压文件--linux
- 1寸,2的照片多大啊
- ssm银行账户管理系统毕业设计(附源码、运行环境)
- [科普] 狭义相对论
- 两只PNP晶体三极管和四个电阻组成恒流源电路
- 超长干货!最全数据指标分析!
- 人脸识别之人脸关键点(仅供本人参考)
- python爬取歌曲教程_歌曲网站,教你爬取 mp3 和 lyric
- Springboot美食汇开放平台8ob70计算机毕业设计-课程设计-期末作业-毕设程序代做
- 马斯克被曝摆架子/ 朱晓彤卸任特斯拉中国法人/ 苹果M2Pro首发台积电3nm...今日更多新鲜事在此...
- Discuz验证码功能解析