php中n阶乘的实现方法

1、普通递归实现,根据递归的通用公式fact(n) = n * fact(n-1)很容易写出阶乘的计算代码。

普通递归实现的优点在于代码比较简洁,和通用公式一样的过程使得代码容易理解。缺点则在于由于需要频繁地调用自身,需要大量的入栈出栈操作,整体的计算效率不高。

functionfact(int$n):int
{
if($n==0){
return1;
}
return$n*fact($n-1);
}

2、普通循环实现,有些动态规划的味道,但由于中间态变量使用频率低,不需要额外存储空间。

所以要比一般的动态规划算法简单。普通递归方法是自顶向下(由 n 到 1)的计算过程,而普通循环是自底向上进行计算。

functionfact(int$n):int
{
$result=1;
$num=1;
while($num<=$n){
$result=$result*$num;
$num=$num+1;
}
return$result;
}

以上就是php中n阶乘的实现方法,希望对大家有所帮助。更多php学习指路:php教程

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。