powershell 遞迴 演算法 的例子

來源:互聯網
上載者:User

<# 遞迴,簡單地說就是函數不停地調用自身。 迴圈和遞迴,是程式常用解題方式,幾乎99%的語言都有。 遞迴使寫程式更簡單,更清晰,但比迴圈更占記憶體。

那麼如何從遞迴中退出呢?一般建議把遞迴放在if中,或else中。也就是說在遞迴外面判斷條件。條件成立,或者不成立,再無限遞迴。

不過貌似指令碼語言遞迴的效能都不太好,因為庫都比較大,出棧入棧就好像胖子過通道。 而powershell的遞迴在指令碼語言中還算是差的,因為年頭畢竟短,而且並沒專門考慮過最佳化。 當然這都是傳言,我的簡單實驗,效能還可以,大家也多用用遞迴,多測測啊。

#>

 

function 用遞迴法計算階乘($值)

{    

  if($值 -gt 1)    

  {

    return ( $值 * (用遞迴法計算階乘  ($值-1))  )

  }

  else

  {

      return $值

  }

}

 

#for($i=21;$i -lt 31;$i++)

#{

#Write-Host  (用遞迴法計算階乘  $i)

#}

#------------------遞迴結果超過double類型的最大值時,就要用下面的【無窮大正整數】,但注意:安裝 .net4 先! --------------------------------

[reflection.assembly]::loadwithpartialname("System.Numerics")

$anser_first="1005"

$大數=[System.Numerics.BigInteger]::Parse($anser_first)

Measure-Command {Write-Host  (用遞迴法計算階乘 $大數) }

 

算1005位用了 2秒多

powershell 遞迴 演算法 例子 powershell  灰主牛 官網 官方網址 電子書  閱讀器  語音計算機 efs copy backup ps_ping ps_tracert 三賤客 天罡茅山秘

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.