方法一:拆分为两部分
1、这样的计算可以分为两部分,第一部分可以先算出每个数的阶乘到底等于多少,例如3=1*2*3
jie (n) {
if (n === 1) {
return 1
} else {
return n * this.jie(n - 1)
}
}
2、第二部分是使用循环把这所有的阶乘相加起来
jieNum (n) {
let temp = 0
if (n === 1) {
temp = 1
} else {
for (let i = 1; i <= n; i++) {
temp += this.jie(i)
}
}
return temp
}
这是一种拆分算法,另外一种是使用两个for循环进行
jieNum (n) {
if (n === 1) {
return 1
} else {
let sum = 0
for (let i = 1; i <= n; i++) {
let temp = 1
for (let j = 1; j <= i; j++) {
// 计算每一步的阶乘
temp *= j
}
// 使用for进行计算
sum += temp
}
return sum
}
}