# Solving and testing factorial computation (part da0b)

Разберём решение и сразу накроем его тестами — это хороший стиль работы с кодом.

## Задача

Вычислить факториал натурального числа `n`: `n! = 1 · 2 · … · n`, а `0! = 1`. Самая первая задача на циклы в учебнике.

## Решение

```python
def factorial(n: int) -> int:
    result = 1
    for i in range(2, n + 1):
        result *= i
    return result


print(factorial(6))
```

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

Аккумулятор `result` умножается на числа от 2 до n. Итеративное решение предпочтительнее рекурсивного: оно не переполняет стек вызовов.

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

```text
720
```

## Сложность

O(n) по времени, O(1) по памяти.


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

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

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

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

Тесты вида assert удобны для учебных задач: они короткие, наглядные и не требуют фреймворков.

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

[наглядные](https://www.sfahba.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/nudistfamily-dbebfb.pdf) · [требуют](https://toyfactory.sk/zoox18+com?f=linkcentre) · [случай](https://statics.pancake.vn/web-media-264/33/73/2d/20/83b9b45de11b83ebdcacb8edb46566f0aa35a5bf0e566949a3091102.pdf) · [учебнике](https://paste2.org/tNkbUshz) · [Вычислить](https://ecency.com/@lukaskral2261/post-5364aa) · [проверка](https://rentry.co/broskynova-plnka-do-torty-540709) · [Пример](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [print(factorial(6](https://privatebin.devol.it/?52e3e4623f1cc39e#77V52qox3rbw8iPGe8ga3gSLVaYDBnNdp8315Qe1bCcH) · [Тесты](https://statics.pancake.vn/web-media-264/e5/ae/97/54/b4a92d2b2abacc279ca7026fadf11d86249ea1b061352b295c1b026f.pdf) · [вызова](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [включая](https://contracosta.news/wp-content/uploads/event-manager-uploads/event_banner/2026/10/lakindayxo-24a883.pdf) · [хороший](https://statics.pancake.vn/web-media-264/8f/25/8e/3c/1fa12bbac4d27dff95efae91c86f5c1682462a33e3e233672131b84e.pdf) · [python](https://smithjulia1.wixsite.com/my-site-1/post/%E6%B0%B4%E5%B2%9B%E6%B4%A5%E5%AE%9E%E7%95%AA%E5%8F%B7) · [второй](https://articlescad.com/bokep-jilbab-tante-ibu-guru-hijab-video-dewasa-terbaru-2024-384492.html) · [фреймворков](https://pinewood9897.bearblog.dev/) · [учебных](https://mallmasti.com/thaikathoey?f=linkcentre) · [работает](https://gitlab.com/chuongnhuhoa/trusrewre/-/blob/main/articles/fibonacci-razbor-mvdum9wu.md) · [памяти](https://privatebin.devol.it/?9ac0a4533d86d578#6jLxSKSY9PJJs9jyNkXyjqVWQBKfJ2YnQB5gsPn35oe1) · [удобны](https://yakihonne.com/article/naddr1qvzqqqr4gupzprrshlfc4dqg3nvfekvsph9zcwcerxnxdja9z6hmp5kutexmx877qy28wumn8ghj7un9d3shjtnyv9kh2uewd9hszrthwden5te0dehhxtnvdakqzynhwden5te0danxvcmgv95kutnsw43qqtr8v9kxcetj0yknjcejxsunzdnx956kgcnx956rqcmy94sn2vej94jnydrxxs6kyvt9xa3nw9x29g6) · [range(2](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [стиль](https://collection72030.mataroa.blog/blog/jbzone-amateur-photos-public-nudity-and-sauna-scenes/) · [защищает](https://rentry.co/visceratio-358756) · [Решение](https://yakihonne.com/article/naddr1qvzqqqr4gupzqmlx9s9x3afyeh0g7saxjum67wguwx00mltn77sea6mkfdt9yvd3qy28wumn8ghj7un9d3shjtnyv9kh2uewd9hszrthwden5te0dehhxtnvdakqzynhwden5te0danxvcmgv95kutnsw43qqtr8v9kxcetj0yknqe3nxgmryc35943k2cmp956xxd3e94sngctp95mxyvphvcuxvdenxuexxh5y4hk) · [циклы](https://drop.xtrafrancyz.net/selif/6wua4in7sf.pdf)

