169 похожих чатов

Салют ребята, кто может объяснить почему в моем примере ответ

21 ? заранее спасибо
function getFibonachi(n)
{
if (n === 0){
return 0;
}
if (n === 1){
return 1;
}
else{
return getFibonachi(n - 1) + getFibonachi(n - 2);
}
}
var result = getFibonachi(8);

9 ответов

5 просмотров

потому что фибоначи от 8 равно 21 в функции происходит рекурсивное вычисление что именно не понятно ?

dude just use debugger

Alexey-Cky Автор вопроса
Alexey Cky
а могли бы вы объяснить как школьнику?

функция работает правильно, только задом-наперед: фибоначи(8) = фибоначи(7) + фибоначи(6) фибоначи(7) = фибоначи(6) + фибоначи(5) фибоначи(6) = фибоначи(5) + фибоначи(4) ... фибоначи(1) = 1 фибоначи(0) = 0

Alexey-Cky Автор вопроса
Arthur Bobrovskih
функция работает правильно, только задом-наперед: ...

к сожалению, я все равно не понял. на 1ой итерации вернется 13, на 2ой по идее 10 что я упускаю?

Alexey Cky
к сожалению, я все равно не понял. на 1ой итерации...

на первой итерации будет не 13, а сложение результата фибоначи(7) плюс фибоначи(6) мы не знаем чему равно фибоначи(7), поэтому идем вычислять его из фибоначи(6)+фибоначи(5), которые в свою очередь тоже не знаем и идем вычислять и так далее единственное что знаем это фибоначи(0) = он равен нулю и фибоначи(1) = он равен единицы на них то рекурсия и завершается

Alexey-Cky Автор вопроса
Arthur Bobrovskih
на первой итерации будет не 13, а сложение результ...

так понятнее, но тем не менее, как мы получаем 21?

Alexey Cky
так понятнее, но тем не менее, как мы получаем 21?

складываем все полученные числа почитайте сам алгоритм https://ru.wikipedia.org/wiki/Числа_Фибоначчи

Похожие вопросы

Обсуждают сегодня

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
Кибер Бомж
8
Карта сайта