H. Генератор Фибоначчи

Числа Фибоначчи весьма интересная последовательность и используется в различных математических задачах. В ней каждый следующий элемент равен сумме двух предыдущих. Математики начинают эту последовательность с двух единиц, но мы же с вами программисты, поэтому привыкли вести счет с нуля.

Напишите генератор fibonacci, который последовательно возвращает заданное количество чисел Фибоначчи по “правилам программистов”.

Примечание

Ваше решение должно содержать только функции.
В решении не должно быть вызовов требуемых функций.

Пример

Ввод

print(*fibonacci(5))

Вывод

0 1 1 2 3

Ввод

print(*fibonacci(10), sep=', ')

Вывод

0, 1, 1, 2, 3, 5, 8, 13, 21, 34

Лирическое отступление

Надо сказать, что заявляя, что математики начинают последовательность с двух единиц, Яндекс выставляет себя не в лучшем свете. В его материалах в примерах с рекурсией указаны неправильные значения чисел Фибоначчи именно по той причине, что Яндекс сам начинает считать последовательность Фибоначчи с двух единиц прямо в теоретическом материале к этой задаче

Математики же как раз считают последовательность Фибоначчи с нуля и единицы.

Решение

Первая задача на генераторы. С учетом того, что функция по большому счету от генератора отличается только способом возрата значения, задача элементарна: Реализуем алгоритм вычисления последовательности Фибоначчи и на каждой итерации возвращаем полученое число с помощью yeld.

Посмотреть код

Решение

Python
def fibonacci(num):
    a = 0
    b = 1
    for _ in range(num):
        yield a
        a, b = b, a + b
Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии