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; }
推荐操作系统:windows7系统、PHP5.6、DELL G3电脑
上述内容具有一定的借鉴价值,感兴趣的朋友可以参考,希望能对大家有帮助,想要了解更多"PHP中计算n的阶乘用递归和循环的方法怎样做"的内容,大家可以关注恒创科技的其它相关文章。