不引入第三個變量,而交換兩個變量的值 方法一:算術運算 它的原理:把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的值互換。 通常我們的做法是(尤其是在學習階段):定義一個新的變量,借助它完成交換 ...