不引入第三个变量,而交换两个变量的值 方法一:算术运算 它的原理:把a,b看做数轴上的两个点。 第一句“a=b-a”求出了ab两点之间的距离,并且将其保存在a中; 第二句“b=b-a”求出了a到原点的距离(b到原点的距离减去ab两点距离),并且将其保存在b中; 第三 ...
package test public class Test public static void main String args int a, b a b System.out.println a b 借助第三方变量 这种算法易于理解,特别适合帮助初学者了解计算机程序的特点,是赋值语句的经典应用。 在实际软件开发当中,此算法简单明了,不会产生歧义,便于程序员之间的交流。 一般情况下碰到交换变量 ...
2016-07-27 20:27 0 3170 推荐指数:
不引入第三个变量,而交换两个变量的值 方法一:算术运算 它的原理:把a,b看做数轴上的两个点。 第一句“a=b-a”求出了ab两点之间的距离,并且将其保存在a中; 第二句“b=b-a”求出了a到原点的距离(b到原点的距离减去ab两点距离),并且将其保存在b中; 第三 ...
//字符串版本 结合使用substr,strlen两个方法实现$a="a";$b="b";echo '交换前 $a:'.$a.',$b:'.$b.'<br />';$a.=$b;$b=substr($a,0,(strlen($a)-strlen($b)));$a=substr ...
//方法一:$a ="abc";$b="def"; $a = $a^$b;$b = $b^$a;$a = $a^$b; //方法二:list($a, $b)= array($b, $a); // ...
通常我们的做法是(尤其是在学习阶段):定义一个新的变量,借助它完成交换。代码如下: 上面的算法最大的缺点就是需要借助一个临时变量。那么不借助临时变量可以实现交换吗?答案是肯定的!这里我们可以用三种算法来实现:1)算术运算;2)指针地址操作;3)位运算;4)栈实现。 1) 算术运算 ...
package main import ( "fmt" ) func main() { //声明两个变量并且赋值 a=10 b=20 交换后的值是a=20 b=10 并且,不可以使用第三个变量 a := 10 b := 20 //1.首先a=a+b的值 10+20=30 ...
最近在看到java的位运算,这块到目前为止也没有用到过,因为不知道怎么用所以总感觉学不会。当然看到这里就想到之前看到过几次的java实现两个变量值交换,不通过中间变量的问题。又忘记了原理,各种搜索之后还是总结一下记下来吧。 首先只有两个变量,相互交换值。因此每个值不能丢掉,且暂存变量有两个 ...
小结一下: 给出两个变量: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 的值已经交换 ...
最近在看《c++从入门到精通》自学c++,里面有一道课后题是如何做到不适用第三个变量来交换两个数的值,以下是我在网上查找到的资料,记录下并作为笔记。 题目:a=10,b=15,将a / b的值互换。 通常我们的做法是(尤其是在学习阶段):定义一个新的变量,借助它完成交换 ...