`
kingj
  • 浏览: 425247 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

总结交换2个数的值不用临时变量的方法

 
阅读更多

 今天温习了一下java基础,看到2个数的交换方法的时候,想到了以前的面试经历,总结了如下的3种方法

故而写来放在这里

 

1、使用异或实现交换

    我们知道异或的原理就是如果2个数中对应的位上相同为0,相异为1 即任何数异或上其本身结果不变

 

 

public void swap(int a,int b){
      a=a^b;
      b=b^a;
      a=a^b;
}
 

2、使用最简单的加减法

 

 

public void swap(int a,int b){
      a=a+b;
      b=a-b;
      a=a-b;
}

 

 

3、最想不到加法和乘法

 

 

public void swap(int a,int b){
     a=b+(b=a)*0;
}

  希望各位拍砖

分享到:
评论

相关推荐

    示例代码:不经过中间变量交换两个数

    通常情况下,交换两个变量的值需要第三个临时变量作为中介。但是,通过巧妙利用位异或运算符,我们可以实现不使用任何额外变量来交换两个数的值。 具体步骤如下: 1. 使用位异或运算符计算两个变量的异或值,并将...

    不要采用异或来交换两个变量

    传统的变量交换方法通常采用一个临时变量来进行值的存储与传递。例如: 1. **定义临时变量**:`int temp;` 2. **保存原始值**:`temp = a;` 3. **交换值**:`a = b;` 4. **恢复值**:`b = temp;` #### 异或交换法...

    PHP不用第三变量交换2个变量的值的解决方法

    通过先将两个变量相加的值赋给第一个变量,然后再用第一个变量减去第二个变量的原值赋给第二个变量,最后再用第一个变量的当前值减去第二个变量的现值赋回第一个变量,从而完成变量值的交换。 在编码时,需要注意...

    python交换两个变量的值方法

    在许多编程语言中,如C语言,交换两个变量的值通常需要引入一个临时变量来存储其中一个变量的值。具体步骤如下: 1. 将变量`a`的值保存到临时变量`tmp`中。 2. 将变量`b`的值赋给变量`a`。 3. 最后,将临时变量`tmp...

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

    下面的方案都不会有临时变量,我总结了一下,其实不使用临时变量的思路都是让其中一个变量变成一个a和b都有关系的值,这样可以先改变另一个变量值, 最后改变原修改的变量值 比如这个 a += b; b = a - b; a

    JavaScript交换两个变量方法实例

    使用一个临时变量来交换 2.方案二 使用ES6解构赋值语法来交换 3.方案三 利用数组 根据运算符的优先级,首先执行b=a,将a的值赋值给b,然后通过数组索引将b赋值给a,一行代码解决两值的交换。 4.方案四 先让a变成a...

    不使用第三个变量进行交换的三种方式以及隐藏隐患

    在不使用第三个变量交换...总结来说,这三种不使用第三个变量进行两个数交换的方法都有它们的应用场景和潜在风险。在实际应用时,需要根据具体情况选择合适的方法,并考虑潜在的风险因素,以确保代码的正确性和稳定性。

    交换两个数字

    在这段代码中,`swap1`函数接收两个整型参数`x`和`y`,并通过一个临时变量`data`来完成这两个参数值的交换。但是,由于C++中函数参数传递是值传递的方式,这意味着传递给`swap1`的参数实际上是`x`和`y`的副本,因此...

    Python3之不使用第三方变量,实现交换两个变量的值

    通常的做法是引入一个临时变量来完成这一过程。然而,在Python这种动态语言中,我们可以采用更为简洁的方式来实现这个功能,即不使用额外的第三方变量。这种方法不仅能够提高代码的可读性,还能在一定程度上提升程序...

    swapping:matlab中两个数的交换-matlab开发

    总结来说,在 MATLAB 中交换两个数或一组数的方法多样,既可以使用临时变量,也可以利用索引直接操作。具体选择哪种方法取决于实际需求和代码的可读性。了解这些技巧能帮助你编写更加高效且易于理解的 MATLAB 代码。

    问题123: 变量交换

    这种方法避免了额外的临时变量,但需要注意的是,在某些情况下(例如当两个数的和超出了整型变量的表示范围时),这种方法可能会导致溢出错误。 #### 方法三:直接输出 **代码示例** ```cpp #include int main...

    交换函数2_swap_c++交换函数_

    在C++编程语言中,`swap`函数是一个非常基础且重要的工具,用于交换两个变量的值。这个功能在处理数组、容器或者需要重新排列数据顺序的场景中非常常见。本篇文章将深入探讨`swap`函数的工作原理,以及如何在C++中...

    交换两数的值.7z

    这是最直观的方式,创建一个额外的临时变量`temp`来暂存其中一个值,然后进行交换。 ```java int a = 5; int b = 10; int temp = a; // 保存a的值 a = b; // a现在等于b b = temp; // b现在等于原来的a ``` ...

    两个数据的交换

    经典的两数交换算法利用了一个额外的临时变量`temp`来完成交换过程: ```c { int temp = A; A = B; B = temp; } ``` 这种方法简单直观,但需要消耗额外的存储空间用于存放临时变量`temp`的值。 ### 不使用临时...

    java 四种数据交换经典

    这种方法是最直观、最简单的方法之一,其基本思路是引入一个临时变量来存储其中一个变量的值,然后通过一系列赋值操作完成两个变量值的交换。 **示例代码解析:** ```java int x1 = 2147483647; int y1 = ...

    JS实现不用中间变量temp 实现两个变量值得交换方法

    总结来说,在JavaScript中实现两个变量值的交换,不必依赖中间变量temp,我们有多种方法可以选择。包括使用加减法、乘除法,以及利用数组的灵活性。每种方法有其适用场景和潜在的限制。在实际开发中,可以根据变量的...

    求五个数中的最大值和最小值

    - 计算`num1`除以`num2`的余数,赋值给临时变量`temp`。 - 将`num2`赋值给`num1`。 - 将`temp`赋值给`num2`。 - 重复以上步骤,直到`num2`为0。 4. 最后,`num1`即为两数的最大公约数。 #### 2. 求两个数的最小...

    易语言整数快速交换

    总结来说,易语言整数快速交换的核心在于利用数学或二进制运算的性质,巧妙地在不借助额外存储空间的情况下完成两个整数的值交换。这种技巧在编程实践中有着广泛的应用,尤其是在优化性能的关键环节。了解并掌握这些...

    用引用交换两个整形或字符串型

    1. 定义了一个临时变量`z`用来存储`x`的值。 2. 将`x`的值赋给`z`。 3. 将`y`的值赋给`x`。 4. 将`z`的值赋给`y`。 #### 交换两个字符串变量 同样地,我们也定义了一个名为`swap1`的函数来交换两个字符串变量: `...

    c代码-2.功能:不用第三个变量,实现两个数的对调操作。

    总结一下,本文详细介绍了如何在C语言中不使用第三个变量来对调两个数的值,以及这种方法的潜在问题和适用性。通过理解和实践这种技巧,程序员可以进一步提升自己的编程技能,尤其是对于解决限制条件严格的算法问题...

Global site tag (gtag.js) - Google Analytics