加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP中计算n的阶乘用递归和循环的方法咋做

发布时间:2023-05-19 15:34:20 所属栏目:PHP教程 来源:
导读:这篇文章给大家介绍了“PHP中计算n的阶乘用递归和循环的方法怎样做”的相关知识,讲解详细,步骤过程清晰,有一定的借鉴学习价值,因此分享给大家做个参考,感兴趣的朋友接下来一起跟随小编看看吧。

1
这篇文章给大家介绍了“PHP中计算n的阶乘用递归和循环的方法怎样做”的相关知识,讲解详细,步骤过程清晰,有一定的借鉴学习价值,因此分享给大家做个参考,感兴趣的朋友接下来一起跟随小编看看吧。
 
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;
 
}
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!