JavaScript,求1!+2!+3!的阶乘的累加和。

JavaScript027

JavaScript,求1!+2!+3!的阶乘的累加和。,第1张

let getJC = n => {

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

    }

}