概要 本文主要描述,如何不使用中間值,將兩個變量的值進行交換。 前三種只適用於number類型的數值交換,第四和第五種適合其他類型。 一、普通做法 普通的做法就是聲明多一個臨時變量tmp,進行數據交換過程中的緩存。這樣的做法直觀,易懂。但是,會增加內存的使用。 二、算術運算 ...
第一類方法也是常用的方法,通過多次的數值計算來完成交換,到現在知道的有下面三種: 加減法。 a a b b a b a a b 該方法可以交換整型和浮點型數值的變量,但在處理浮點型的時候有可能出現精度的損失,例如對數據: a . b . 交換后各變量值變為: a . b . 很明顯,原來a的值在交換給b的過程中發生了精度損失。 乘除法。 a a b b a b a a b 乘除法更像是加減法向乘除 ...
2015-10-21 08:44 0 2968 推薦指數:
概要 本文主要描述,如何不使用中間值,將兩個變量的值進行交換。 前三種只適用於number類型的數值交換,第四和第五種適合其他類型。 一、普通做法 普通的做法就是聲明多一個臨時變量tmp,進行數據交換過程中的緩存。這樣的做法直觀,易懂。但是,會增加內存的使用。 二、算術運算 ...
以下方法的根本原理就是: 借助第三個變量 c = a; a = b; b = c; 運算符-不借助第三變量: a = a+b; b = a-b; a = a-b; 為運算符-不借助第三個變量: (此種方法運用這種原理:一個數對另一個數位異或兩次,該數不變)a = a^b; b ...
最近在看《c++從入門到精通》自學c++,里面有一道課后題是如何做到不適用第三個變量來交換兩個數的值,以下是我在網上查找到的資料,記錄下並作為筆記。 題目:a=10,b=15,將a / b的值互換。 通常我們的做法是(尤其是在學習階段):定義一個新的變量,借助它完成交換 ...
“寫一個swap函數,要求不使用中間變量,交換a、b兩個變量的值”,應該算是老生常談了。但今天卻碰到一點新問題。 今天閱讀《程序員的自我修養--鏈接、裝載與庫》,P98有一小段示例代碼: 我覺得用一行代碼來實現交換a與b的值,還是很簡潔的。於是順手發給了一個朋友。結果朋友說 ...
在語言學習和進行程序設計的時候,我們交換兩個變量最常使用的方法是借助temp這個新的變量進行轉換,代碼如下: ----------------------------------------- <--標准算法--> ...
通常我們的做法是(尤其是在學習階段):定義一個新的變量,借助它完成交換。代碼如下: 上面的算法最大的缺點就是需要借助一個臨時變量。那么不借助臨時變量可以實現交換嗎?答案是肯定的!這里我們可以用三種算法來實現:1)算術運算;2)指針地址操作;3)位運算;4)棧實現。 1) 算術運算 ...
//字符串版本 結合使用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= 1 b= 2 a,b=b,a#python的直接交換 #另一種交換方法 a=a+b #a=3 b=2 b=a-b #a=3 b=1 a=a-b #a=2 b=1 print ...