AFON // радиотехник affonya@mail.ru
← Все проекты JavaScript

Факториал

Факториал двумя способами: рекурсией и через reduce.

JS.06 · Основы

Задача

Посчитать n! рекурсивно и функциональным способом.

Алгоритм

Рекурсия сводит n! к n·(n-1)!. Вариант через Array.from и reduce перемножает числа от 1 до n.

Исходный код

⇩ Скачать 06-faktorial.js

// Факториал: рекурсия и reduce
const factRec = n => (n <= 1 ? 1 : n * factRec(n - 1));
const factRed = n => Array.from({ length: n }, (_, i) => i + 1).reduce((a, b) => a * b, 1);

console.log('5! рекурсия =', factRec(5));
console.log('6! reduce   =', factRed(6));

Пояснения

Стрелочные функции делают запись компактной; reduce сворачивает массив в одно значение.