# Solving and testing the Fibonacci sequence

Решение без тестов быстро ломается, поэтому добавим к задаче простые проверки.

## Задача

Напечатать первые `n` чисел Фибоначчи: 0, 1, 1, 2, 3, 5, … Каждое следующее равно сумме двух предыдущих.

## Решение

```python
def fibonacci(n: int) -> list[int]:
    a, b = 0, 1
    result = []
    for _ in range(n):
        result.append(a)
        a, b = b, a + b
    return result


print(fibonacci(10))
```

## Как это работает

Храним два последних числа и на каждом шаге сдвигаем пару вперёд одной строкой `a, b = b, a + b`. Рекурсия здесь не нужна и работает медленнее.

## Пример работы

```text
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
```

## Сложность

O(n) по времени, O(n) по памяти под результат.


## Проверка тестами

Хорошая привычка — проверять решение сразу на нескольких примерах, включая крайние случаи.

```python
assert is_valid(True) is not None  # базовая проверка вызова
assert is_valid(False) is not None  # и второй случай
```

Такой минимум уже защищает от случайной ошибки при правках кода.

С добавлением проверок решение становится самодокументируемым — сразу видно, что код делает.

**Читайте также:**

[ошибки](https://gellaryforum.freeflarum.com/d/27940-27940-secret-stars-mila) · [второй](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [Храним](https://hey.xyz/posts/bevdw7h73jgkgffny1) · [правках](https://probe24887.wixsite.com/my-site-2/post/arzu-y%C4%B1lmaz-if%C5%9Fa-twitter-videolar%C4%B1-ve-foto%C4%9Fraflar-%C3%BCcretsiz) · [return](https://news-ctl-posts.hashnode.dev/common-mistakes-in-word-frequency-counting) · [решение](https://bokepindon-gallery.vercel.app/xysill+sex+tape+ngentod?f=linkcentre) · [базовая](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [тестов](https://saminupss.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/phantom-wallet-bitcoin-fead02.pdf) · [Задача](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [случай](https://radicle.network/nodes/seed.pipapo.org/rad%3Az3DkcetHGp9QMZzbPWisU1xgkYaG4/issues/4b096a83e760e354113dd2b838fa5d8cc91b29e8) · [проверять](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/the-hot-barfly-ea1501.pdf) · [задаче](https://rentry.co/julio-jose-ipcam-236979) · [Каждое](https://portfolio51444.mataroa.blog/blog/emily-mena-gloryhole-secrets-pov-video-scene-01/) · [сразу](https://rentry.co/viral-video-mms-leaked-531061) · [Сложность](https://escapefromquarantine.com/%EB%AF%B8%ED%99%95%EC%9D%B8+%EA%B8%89%EB%B0%9C%EC%A0%95+%EC%83%9D%EB%AC%BC%EC%B2%B4?f=instapaper) · [Пример](https://news-ctl-posts.hashnode.dev/exploring-bubble-sort) · [защищает](https://radicle.network/nodes/index.radicle.garden/rad%3Az2ZJLkpySzSWcHbWpTqucmBqvjWzK/issues/afeee9ff5ca64fa68184827bb62e50ff7db6c1cf) · [медленнее](https://privatebin.devol.it/?2e3ce6f33c93e0fc#CSjN6AiP15ihNq5kJT7TJ5sjUMi51Dw5Lh7ekS3N2P63) · [range(n](https://drop.xtrafrancyz.net/selif/1berfetbj0.pdf) · [работы](https://loc.edu/wp-content/uploads/event-manager-uploads/event_banner/2026/10/aunty-kerala-xnxx-2f8e5c.pdf) · [примерах](https://gal20723.carrd.co/) · [print(fibonacci(10](https://paste2.org/xFwUGIhF) · [случайной](https://doge.gd/phantom-wallet-bitcoin?f=instapaper) · [fibonacci(n](https://rentry.co/aibanwork-577049) · [видно](https://sway.cloud.microsoft/bgdIKAwENScXw0PL) · [нескольких](https://contracosta.news/wp-content/uploads/event-manager-uploads/event_banner/2026/10/tour-of-booty-local-arab-working-girl-en-89211b.pdf) · [result.append(a](https://drop.xtrafrancyz.net/selif/b6g1475yt9.pdf) · [равно](https://hey.xyz/posts/18423m1kmjxc78b7hz1) · [тестами](https://rentry.co/gv-377611) · [строкой](https://gal29037.carrd.co/)

