Находим n-е число Фибоначчи в PHP

Числа Фибоначчи – это ряд чисел, в котором каждое следующее число равно сумме двух предыдущих: 1, 1, 2, 3, 5, 8, 13, …. Иногда ряд начинают с нуля: 0, 1, 1, 2, 3, 5, ….

Формула:

Fn = Fn-1 + Fn-2

function fibo($i) { if ($i == 0 ) return 0; if ($i == 1 || $i == 2) { return 1; } else { return fibo($i - 1) + fibo($i -2); } } fibo(5);
0
7 комментариев
Написать комментарий...
Sergey Stepanchenko

по настрою вашему вижу, не о чем дальше "дискутировать", имеет хоть какой-то смысл и пользу ваша "статья". для новичков или для старичков. давайте просто подождем других комментариев... аудитория нас рассудит, как обычно.

Ответить
Развернуть ветку
Vornex Inc
Автор

:)

Ответить
Развернуть ветку
Sergey Stepanchenko

простая расчетная функция в случае входного аргумента порядка сотен и тысяч а) работает в сотни раз быстрее, б) памяти съедает в тысячи раз меньше, в) безопасна в плане stack overflow. вывод - не лучшая стратегия применять рекурсию просто потому что она тут подходит. садитесь, студент, сегодня вам "двойка" :)

Ответить
Развернуть ветку
Vornex Inc
Автор

Из серии « написать комментарий ради самого комментария». Обычно у новичков возникают проблемы с пониманием что такое рекурсия, по этой причине данная задача была решена таким образом. Никто не отрицает, что эту задачу можно решить используя другие функции, и это будет и надёжнее и быстрее.

Ответить
Развернуть ветку
Cody Dismal

Не совсем понимаю зачем это на vc.ru, но на ревью спросил бы как минимум зачем `else` после `return` в четвертой строке?

Ответить
Развернуть ветку
Sergey Stepanchenko

...и страшно подумать, что будет со стеком, когда я в такую "функцию" -1 передам :)

Ответить
Развернуть ветку
Cody Dismal

И где тесты? :D

Ответить
Развернуть ветку
4 комментария
Раскрывать всегда