首页 > 解决方案 > 使用递归函数找到给定整数的阶乘

问题描述

我正在尝试创建一个递归函数来打印给定整数的阶乘。要求用户输入一个正整数,然后在页面上显示输出。例如,如果用户输入 5,则输出必须是

5 × 4 × 3 × 2 × 1 = 120

var integer = prompt("Enter a positive integer.");
function factorialize(num) {
    if(num == 0 || num == 1) {
        return 1;
    }
    else {
        return num + " x " + factorialize(num-1) + num * factorialize(num-1);
    }
}
document.write(factorialize(integer));

标签: javascript

解决方案


您可以移交产品和结果的部分。

function factorialize(num, product = 1, result = '') {
    return num === 0 || num === 1
        ? result + (result && ' x ') + num + ' -> ' + product
        : factorialize(num - 1, product * num, result + (result && ' x ') + num);
}

console.log(factorialize(5));
console.log(factorialize(2));
console.log(factorialize(1));
console.log(factorialize(0));


推荐阅读