Javascript Js函数顶部计算阶乘不起作用
我是从coderbyte做这个挑战的,你必须做一个函数来计算给定数字的阶乘,这是我不太有效的解决方案Javascript Js函数顶部计算阶乘不起作用,javascript,Javascript,我是从coderbyte做这个挑战的,你必须做一个函数来计算给定数字的阶乘,这是我不太有效的解决方案 function firstFactorial(num) { for (var i = num; i == 1; i--) { num = num * i; } return num; } 它只是返回我作为参数传递的任何数字,我试图理解出了什么问题。它是与循环有关还是与变量范围有关 i==1是在循环条件下连接的,对于除1之外的所有数字,它将始终为false
function firstFactorial(num) {
for (var i = num; i == 1; i--) {
num = num * i;
}
return num;
}
它只是返回我作为参数传递的任何数字,我试图理解出了什么问题。它是与循环有关还是与变量范围有关
i==1
是在循环条件下连接的,对于除1之外的所有数字,它将始终为false。因此,它将始终返回相同的数字作为结果i=num
应该是i=num-1
才能得到正确的阶乘函数FirstFactorial(num){
对于(变量i=num-1;i>=1;i--){
num=num*i;
}
返回num;
}
log(FirstFactorial(5))
您的for
循环有点混乱。现在应该可以了
函数阶乘(num){
对于(变量i=num-1;i>0;i--){
num*=i;
}
返回num;
}
console.log(阶乘(5))代码>您的问题是您有一个循环条件i==1
。对于阶乘,它应该是i>=1
,或者i>1
,这取决于您使用的算法。我对阶乘函数的看法是:
function calculate(factorial) {
var newFactorial = factorial;
while (factorial > 1) {
factorial--;
newFactorial *= factorial;
}
return newFactorial;
}
这就是你的全部代码吗?i==1
是(var i=num;i==1;i--){
的一个奇怪的循环条件,只有在i==1
时才会执行