JS实现阶乘

介绍

阶乘:一个非负整数n的阶乘是所有小于或等于 n的正整数之积,并且0的阶乘为1。自然数n的阶乘写作n!
即n!=1×2×3×…×(n-1)×n。阶乘亦可以递归方式定义:0!=1,n!=(n-1)!×n

代码示例

这边就不检测n是否为非负整数了

<script>
    // 实现阶乘

    /**
     * 方法一
     * 使用while循环实现
     */
    function factorial(n) {
        // 查看执行速度
        console.time();
        // 定义初始变量
        var result = 1;
        while (n > 1) {
            result *= n;
            n--;
        }
        console.timeEnd()
        return result;

    }
    console.log(factorial(4));

    /**
     * 方法二
     * 使用for循环实现
     */
    function factorial2(n) {
        console.time();
        var i, result = 1;
        for (let i = 2; i <= n; i++) {
            result *= i;
        }
        console.timeEnd();
        return result;
    }
    console.log(factorial2(4));
</script>

在这里插入图片描述

总结

对比这两种方法实现阶乘,在实现数值较小得阶乘时两个方法得执行速度差别不大,但是在实现数值较大得阶乘时方法二通过for循环实现阶乘得执行速度快。


版权声明:本文为qq_45264054原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。