交换两个变量值的几种算法

一、添加临时变量(最常见)

var a = 1,
       b = 2,
       c;

c = a;
a = b;
b = c;

  

二、算数运算(仅限number类型)

var a = 3,
      b = 5;

a = a - b; // a = -2 , b = 5;
b = a + b; // a = -2, b = 3;
a = b - a; // a = 5, b = 3;

三、数组特性

var a = 1;
      b = 2;

a = [ a , b ];
b = a[ 0 ];
a = a[ 1 ];

  

四、ES6解构

let a = 3,
      b = 7;

[ a , b ] = [ b , a ];

  

原文地址:https://www.cnblogs.com/lmyxywy/p/10988974.html

时间: 2024-10-06 11:06:09

交换两个变量值的几种算法的相关文章

不借助第三个变量,交换两个变量值的3种方式

今天在我们学校的OJ上做题,一道非常简单的题,突然想试试能不能不借助第三个变量,交换两个变量值.蒙出来一半了已经,好可惜.现在把方法写在这里,希望以后不要忘记. 1 void fun1() 2 { 3 int a = 10, b = 100; 4 5 a = a + b; 6 b = a - b: 7 a = a - b; 8 printf("%d\n%d\n", a, b); 9 } 10 11 void fun2() 12 { 13 int a = 10, b = 100; 14

JavaScript交换两个变量值的七种解决方案

前言 这篇文章总结了七种办法来交换a和b的变量值 1 2 var a = 123; var b = 456; 交换变量值方案一 最最最简单的办法就是使用一个临时变量了,不过使用临时变量的方法实在是太low了 1 2 3 4 var t; t = a; a = b; b = t; 首先把a的值存储到临时变量中,然后b赋值给a,最后拿出临时变量中的a值赋给b,这个办法是最基本的了 交换变量值方案二 下面的方案都不会有临时变量,我总结了一下,其实不使用临时变量的思路都是让其中一个变量变成一个a和b都有

不使用临时变量交换两个变量值

题目:不使用临时变量交换两个变量值 分析:使用加.减.乘.亦或(aba==b),四种方法分别如下: //方法一:利用加法 int Swap3(int *x, int *y) { *x = *x + *y;//*x是二者和 *y = *x - *y;//*y是*x *x = *x - *y;//*x是*y } //方法二:利用减法 int Swap1(int *x, int *y) { *x = *x - *y;//*x是二者差值 *y = *x + *y;//*x是*y *x = *y - *x

C#交换两个变量值的多种写法

在学习.Net/C#或者任何一门面向对象语言的初期,大家都写过交换两个变量值,通常是通过临时变量来实现.本篇使用多种方式实现两个变量值的交换. 假设int x =1; int y = 2;现在交换两个变量的值. 使用临时变量实现 static void Main(string[] args) { int x = 1; int y = 2; Console.WriteLine("x={0},y={1}",x, y); int temp = x; x = y; y = temp; Cons

不使用临时变量 交换两个变量值

不使用临时变量 交换两个变量值1.$a = $a+$b;$b = $a-$b;$a= $a-$b; 2.list($a, $b) = array($b, $a); 3. $a = $a ^ $b;$b = $a ^ $b;$a = $a ^ $b;

PHP交换两个变量值

方法一:交换两个变量的最简单方法是使用第三个临时变量 1 <?php 2 $a = 15; 3 $b = 27; 4 // 交换逻辑 5 echo "<br>交换前的数字为:<br>"; 6 echo "a =".$a." 且 b=".$b; 7 $temp = $a; 8 $a = $b; 9 $b = $temp; 10 echo "<br>交换后的数字为: <br>"

如何不利用一个额外的变量来达到交换两个变量值的目的-------位上的异或运算

问题:一般我们要交换两个变量的值,多会采取一个额外变量来实现,比如temp=a,a=b,b=temp,现在我们能不利用temp来实现交换a,b两个变量值的目的吗? 解决方案:^异或运算符,而且我们会发现a^a=0,还有0^a=a,依据这两条理论,我们可以实现之前提出的问题. 代码如下: #include<stdio.h>void inplace_swap(int * x,int * y){    *y=*x^*y;    *x=*x^*y;    *y=*y^*x;}int main(){  

从交换两个变量值看c语言学习历程

在开始你使用这种方法 int tmp; tmp = a; a = b; b = tmp; 后来你知道了模块化编程,你知道这样是不好的,于是你开始使用函数. void swap(int *a, int *b); { int tmp; tmp = *a; *a = *b; *b =tmp; }//下面我就不写函数了 随着c语言的学习,后来你发现下面代码也能完成两变量的值交换的任 x = x +y; y = x -y; x = x -y; 后来有一天,你发现你这段代码不是总能正确工作的,因为x + y

批处理:不用中间变量,交换两个变量值

-------siwuxie095 法一:直接交换(不限) @echo off set var1=abc set var2=123 echo 交换前 :var1=%var1% var2=%var2% set var1=%var2% & set var2=%var1% echo 交换后 :var1=%var1% var2=%var2% pause sublime中: 运行一览: 注意:如果 set var1=%var2% & set var2=%var1% 分开成两段写,就达不到交换的效果了