Всем привет! 🖖
Извиняюсь, что не так часто пишу в последнее время - как всегда неожиданно появилась куча забот 🤯😤
Но судя по такому большому числу лайков - от подробного разбора задачи мне не отмазаться. 🤣 Итак, поехали.
Правильные ответы: при
fib(6) - правильный ответ
8, а при
fib(7) -
13
Я долго думал как объяснить эту задачу, не написав целую поэму и тут как всегда помог наставник - пишите ее на бумаге!!!
Итак, вызвав функцию, в первую очередь она смотрит - выполняется ли условие (num <=2). В первой задачи у нас аргумент равен 6, условие не выполняется и дальше у нас функция будет вызывать сама себя. Сначала та, что num-1, проверяется условие и потом та, что num-2. Т.е. вызовем сначала с 6, потом с 5 (6-1), потом с 4 (5-1), потом с 3(2-1) и на этом остановимся, так как с num=3 у нас выполнится условия и для fib(num-1) и для fib(num-2) - и та и та вернет 1, тк условие выполнится.
В итоге мы знаем, что
fib(2) вернет
1 и
fib(1) вернет
1 - а дальше все просто. В обратном порядке по бумаге смотрим "предка" и вычисляем его значение путем суммирования результата "детей". Я как DOM объясняю - но мне кажется так проще ))))
Прикрепляю свой скрин. Так же сегодня мне прислала скриншот Dina, хочу и им поделиться - очень классный и понятный.
зы Если у кого остались вопросы, можно задать их в чате