• 技术文章 >PHP >PHP教程

    php中n阶乘的实现方法

    小妮浅浅小妮浅浅2021-06-03 17:46:08原创292

    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阶乘的实现方法,希望对大家有所帮助。更多php学习指路:php教程

    专题推荐:php中n阶乘
    上一篇:php正则替换函数的整理 下一篇:php rtrim()函数删除字符

    相关文章推荐

    • php中Swoole的模块介绍• php命令行中进行断点• php方法断点如何实现• php中Suhosin是什么• php中如何配置Cookie加密• php Mhash算法的加密• php文件Hash的使用• php增量Hash函数的使用• php中的SAPI是什么• php中CGI模式的介绍• php FastCGI模式如何理解• php FastCGI模式的优缺点• php有哪些文件包含漏洞• php不能生成图片的解决办法• php正则替换函数的整理
    品易云

    全部评论我要评论

  • 取消发布评论发送
  • 

    Python学习网