Cумма факториала через рекурсию

Мне надо вычислить сумму: 1! + 2! + 3! + … +n! (n≤15), используя рекурсию.

мой код вычисляет просто факториал, хотя пытаюсь получить сумму

function sum(n){

var sum=1;
for (var i=1;i<=n;i++){
    sum*=i;
}
return sum;     
}

var num=+prompt('Введите число');
if (num>=15) alert('Число должно быть <=15');
else alert(sum(num));

Ответы (2 шт):

Автор решения: c0ol

Рекурсивная функция, сумма n = 3! равна 9.

function factorial(n) {
  return n ? n * factorial(n - 1) : 1;
}

let n = 3,
i = 1,
sum = 0;

while(i <= n) {
     sum += factorial(i);
     i++;
}

console.log(sum);
→ Ссылка
Автор решения: EzioMercer

Оставлю на случай, если и сложение должно быть рекурсивным:

const fac = (num) => {
  if (num === 1) return 1;
  
  return num * fac(num - 1);
}

const sumOfFacs = (num) => {
  if (num === 1) return 1;
  
  return fac(num) + sumOfFacs(num - 1);
}

console.log(sumOfFacs(4));

Для простоты не добавлял защиту от дурака, если при тестировании подставляются любые данные (типа дробные и отрицательные или вообще не числа), то можете сами дописать проверки, на проверку валидности числа. На крайняк, если у самой не получится (это значит что нам будет показано как вы пытались добавить проверки), то можете попросить :)

→ Ссылка