我正在从 coderbyte 做这个挑战,你必须创建一个函数来计算给定数字的阶乘,这是我不太有效的解决方案。
function firstFactorial(num) {
for (var i = num; i == 1; i--) {
num = num * i;
}
return num;
}
它只是返回我作为参数传入的任何数字,我试图理解出了什么问题。是与循环有关还是与变量作用域有关?
最佳答案
<i == 1
在循环条件下连接,对于除 1 之外的所有数字,它始终为 false。因此,它将始终返回与结果相同的数字。i = num
应为i = num-1
才能获得正确的阶乘。
function FirstFactorial(num) {
for(var i = num-1; i >= 1; i--){
num = num * i;
}
return num;
}
console.log( FirstFactorial(5))
关于javascript - Js函数顶部计算阶乘不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52533567/