1

需求

给出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

相关链接:

递归
阶乘
算数运算符

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


小石头
266 声望15 粉丝