На практике рекурсия — это код, который вызывает сам себя. Он может призывать себя до бесконечности, если только мы не поставим условие остановиться, как только он достигнет определенной точки.

В коде пример рекурсии можно записать следующим образом:

function factorial(n){
     if(n === 1){
       return 1
     }else{
       return n * factorial(n-1)
     }
}
factorial(5)

Приведенный выше пример является классическим примером рекурсивного кода. Приведенный выше код вызывает умножение целого числа n на единицу минус текущее n. Как только n достигает 1, код возвращает 1, рекурсия достигает конечной точки и начинает возвращать значение обратно в код.

На изображении выше показано, что factorial of 5 сначала возвращает 5 * factorial(4). Факториал 4 возвращает 4 * factorial(3) и так далее, пока n не достигнет 1. Факториал 1 возвращает 1, в котором код возвращается к коду и заполняет факториал(n) фактическими числами.

Один важный аспект, который необходимо понять, заключается в том, что n — это не одно число. N - это несколько чисел в рекурсии. N равно 5, также 4, также 3, также 2 и, наконец, 1.

https://www.youtube.com/watch?v=Mv9NEXX1VHc