Учебные задачи PHP. Задача 4
Primary tabs
Список учебных задач PHP здесь
Условие: Вывести на экран n-ное число Фибоначчи.
<?php $n = 9; // количество чисел в последовательности Фибоначчи $a = 0; $b = 1; echo $a, "<br>"; echo $b, "<br>"; for ($i = 2; $i <= $n; $i++) { $c = $a + $b; echo $c, "<br>"; $a = $b; // следующий $a равняется предыдущему $b $b = $c; // следующий $b равняется $с из предыдущей интерации цикла } ?>
- Log in to post comments
- 15096 reads
math2
Thu, 02/07/2019 - 12:36
Permalink
\$n=9; Но на экран выводится
\$n=9; Но на экран выводится 10 чисел.
Лучше это записать как функцию, у которой на входе номер элемента последовательности, а на выходе — сам элемент.
rvsokolov
Mon, 02/11/2019 - 17:00
Permalink
Используя функцию
Не совсем понял необходимость применения функции в данном случае. В предыдущем решении можно было исправить значение i в цикле for, чтобы при n=9 выводилось девять чисел, а не десять.
Подскажите, в чем необходимость решения через функцию?
vedro-compota
Mon, 02/11/2019 - 17:11
Permalink
функции
в вашем случае вы просто завернули код в функцию, вам же предлагалось сделать функцию, которая именно возвращает нужное по порядку число (не более того) и уже её использовать в клиентском коде.
Такое решение было бы более переносимым.
Ваша же функция вообще не возвращает никакого значения, зато производит побочный эффект (распечатку), который допустим при отладке, но крайне нежелателен в чистовом коде.
_____________
матфак вгу и остальная классика =)
math2
Mon, 02/11/2019 - 17:50
Permalink
К тому же
К тому же
напечатает и первый элемент, и второй.
rvsokolov
Tue, 02/19/2019 - 22:23
Permalink
Осознание
Условие: Вывести на экран n-ное число Фибоначчи.
Я понял свою предыдущую ошибку. От меня не требуется выводить всю последовательность, нужно только строчку с номером и соответствующим ему числом в последовательности
math2
Wed, 02/20/2019 - 00:15
Permalink
Да. Одно число по номеру.
Да. Одно число по номеру.
vedro-compota говорил о функции, которая возвращает это число, и потом эту функцию использовать. Например, так:
rvsokolov
Wed, 02/20/2019 - 18:30
Permalink
Нужна помощь
Моя функция также в одной строке выдает рандомный номер в последовательности и показывает само число под этим номером.
Плиз, если можно, объясните простым языком почему мой вариант неверный и что именно нужно доработать?
vedro-compota
Thu, 02/21/2019 - 12:40
Permalink
вывод на экран и возврат
тут почти все хорошо. но побочный эффект лучше оказывать снаружи в клиентском коде. Уберите echo из функции - -просто возвращайте значение, а распечатывайте уже снаружи.
ваша функция не возвращает значение, а выводит его на экран, это абсолютно разные вещи, почитайте про возврат: http://fkn.ktu10.com/?q=node/8724
_____________
матфак вгу и остальная классика =)
rvsokolov
Thu, 02/21/2019 - 21:26
Permalink
Очередное исправление
Исправленное решение
vedro-compota
Thu, 02/21/2019 - 21:53
Permalink
да верно, решение засчитано.
да верно, решение засчитано.
_____________
матфак вгу и остальная классика =)