Опять работа?!
Рекурсия и стек
Рекурсия и стэк | @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 |
| Стек вызовов |
| Стек вызовов |
5! = 120 Uncaught RangeError: Maximum call stack size exceeded