javascript - 使用递归函数找到给定整数的阶乘
问题描述
我正在尝试创建一个递归函数来打印给定整数的阶乘。要求用户输入一个正整数,然后在页面上显示输出。例如,如果用户输入 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));
解决方案
您可以移交产品和结果的部分。
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));
推荐阅读
- latex - LateX 中两个不同名字的摘要
- android - 嵌套的 RecyclerView 不回收
- python - Django DateField 给出验证错误
- .net - 在.Net中查看非托管内存的内存内容
- parallel-processing - 关闭 shell 时,mpi 主进程没有被杀死
- firebase - Firestore 查询流和获取之间的区别?
- java - 如何将自定义工具提示添加到 JtextField?
- ffmpeg - 输出流中的非单调 DTS 0:1
- laravel - Laravel - 图片上传在服务器上不起作用
- wordpress - 比较WordPress中的用户名和自定义字段