let r = 1
while (n) {
r *= n
n--
}
return r
}
let getSum = n => {
let r = 0
while (n) {
r += getJC(n)
n--
}
return r
}
console.log(getJC(3))
console.log(getSum(3))
你的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
while(true){var obj = prompt("输入一个整数:","")
if(/^\+?\d+$/.test(obj)){
var sum = 0
for(var i = 1 i <= obj i++){
var x = 1
for(var j = 1 j <= i j++){
x *= j
}
sum += x
}
alert("1的阶乘到"+obj+"的阶乘的和: " + sum)
break
}else{
continue
}
}