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

需求

给出num,实现num的阶乘javascript

factorialize(5) should return 120

思路

  1. 递归函数java

  2. 条件语句中止递归less

代码1:函数

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

factorialize(5);

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

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

factorial(5) // 120

相关连接:

递归
阶乘
算数运算符递归

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