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));
Для простоты не добавлял защиту от дурака, если при тестировании подставляются любые данные (типа дробные и отрицательные или вообще не числа), то можете сами дописать проверки, на проверку валидности числа. На крайняк, если у самой не получится (это значит что нам будет показано как вы пытались добавить проверки), то можете попросить :)