Рекурсивная функция вызывает саму себя.
Функция по нахождению факториала вычисляет n! рекурсивно. База: 0! = 1, 1!= 1.
Для n > 1 возвращаетn * factorial(n - 1). Рекурсия последовательно уменьшает n до базы и затем «разворачивается» произведениями.
Время – O(n), Память (стек) – O(n)
1function factorial(n: number): number {2 if (n < 0) throw new Error('n must be >= 0');3 return n <= 1 ? 1 : n * factorial(n - 1);4}56factorial(0) // -> 17factorial(1) // -> 18factorial(5) // -> 1209factorial(7) // -> 504010