for(i=2i<6i++){//5!=1*2*3*4*5
n*=i
}
console.log("5的阶乘是"+n)
function factorial(n){return n > 1 ? n * factorial(n-1) : 1
}
factorial(5)//120
以上函数可以求简单的n的阶乘
由于使用的是原生的乘法,所以计算范围有限
主要使用了递归的方式进行计算,是求阶乘的常用方法之一
你的Javascript程序中for循环的循环变量i都没有定义,应该在相应的函数中定义,或者在for循环中定义(前面加var)就行了,你的Javascript程序我帮你改完了,你看看吧(改动的地方见注释)
<script type=text/javascript>console.log(getFactorialSum(4))
function getFactorial(n){
var factorial=1
for(var i=ni>0i--){ //这里定义循环变量i,前面加var把for(i=ni>0i--)改成for(var i=ni>0i--)
factorial*=i
}
return factorial
}
function getFactorialSum(n){
var sum=0
for(var i=0i<ni++){ //这里定义循环变量i,前面加var把for(i=0i<ni++)改成for(var i=0i<ni++)
sum+=getFactorial(n-i)
}
return sum
}
</script>
运行结果
33