Опять работа?!
Рекурсия и стек
Рекурсия и стэк | @alexeycorr
Рекурсия и стек
Рекурсия - это метод, при котором функция вызывает саму себя для решения проблемы.
Cтек - это структура данных, которая следует принципу LIFO (last in, first out).
5! = 1 * 2 * 3 * 4 * 5 = 120
Стек вызовов |
5 * factorial(4) |
Стек вызовов |
4 * factorial(3) |
5 * factorial(4) |
Стек вызовов |
3 * factorial(2) |
4 * factorial(3) |
5 * factorial(4) |
Стек вызовов |
2 * factorial(1) |
3 * factorial(2) |
4 * factorial(3) |
5 * factorial(4) |
Стек вызовов |
1 |
2 * factorial(1) |
3 * factorial(2) |
4 * factorial(3) |
5 * factorial(4) |
Стек вызовов |
2 * 1 |
3 * factorial(2) |
4 * factorial(3) |
5 * factorial(4) |
Стек вызовов |
3 * 2 |
4 * factorial(3) |
5 * factorial(4) |
Стек вызовов |
4 * 6 |
5 * factorial(4) |
Стек вызовов |
5 * 24 |
Стек вызовов |
Стек вызовов |
Uncaught RangeError: Maximum call stack size exceeded