您的位置:首页 > 运维架构 > Shell

powershell 递归 算法 的例子

2013-01-29 10:42 253 查看
<# 递归,简单地说就是函数不停地调用自身。 循环和递归,是程序常用解题方式,几乎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 三贱客 天罡茅山秘
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: