文章插图
1、普通递归实现 , 根据递归的通用公式fact(n) = n * fact(n-1)很容易写出阶乘的计算代码 。
普通递归实现的优点在于代码比较简洁 , 和通用公式一样的过程使得代码容易理解 。缺点则在于由于需要频繁地调用自身 , 需要大量的入栈出栈操作 , 整体的计算效率不高 。
function fact(int $n): int{if ($n == 0) {return 1;}return $n * fact($n - 1);}2、普通循环实现 , 有些动态规划的味道 , 但由于中间态变量使用频率低 , 不需要额外存储空间 。
所以要比一般的动态规划算法简单 。普通递归方法是自顶向下(由 n 到 1)的计算过程 , 而普通循环是自底向上进行计算 。
function fact(int $n): int{$result = 1;$num = 1;while ($num <= $n) {$result = $result * $num;$num = $num + 1;}return $result;}以上就是php中n阶乘的实现方法 , 希望对大家有所帮助 。
以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!
「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助:- hash加密算法有哪些 php Mhash算法的加密
- php垃圾收集机制怎么样的 php引用计数如何实现垃圾回收
- php require和include区别 php中require和include如何区分
- cookie加密方式 php中如何配置Cookie加密
- php 消息队列 php消息队列的介绍
- php zval PHP中Zval是什么
- php中Suhosin是什么
- php图片显示不出来 php不能生成图片的解决办法
- php断点调试 php方法断点如何实现
- php运行模式有哪几种 php常见运行模式详解