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 ответов

9 просмотров

потому что фибоначи от 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/Числа_Фибоначчи

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта