【译】JS基础算法脚本:阶乘

需求

给出num,实现num的阶乘

factorialize(5) should return 120

思路

  1. 递归函数

  2. 条件语句停止递归

代码1:

function factorialize(num) {
    if(num === 0){
        return 1;
    }
    
    return num * factorialize(num-1);
}

factorialize(5); 

代码2(楼下道友的尾递归代码):

function factorial(n, total = 1) {
    if (n === 1) return total;
    return factorial(n - 1, n * total);
}

factorial(5) // 120

相关链接:

递归
阶乘
算数运算符

有其他好的方法或思路的道友,不妨在沙发区神交一番。

    原文作者:小石头
    原文地址: https://segmentfault.com/a/1190000010509105
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞