Частые ошибки при решении: вычисление факториала
Разберём решение и подводные камни — их обычно не видно в готовом коде из учебника.
Задача
Вычислить факториал натурального числа n: n! = 1 · 2 · … · n, а 0! = 1. Самая первая задача на циклы в учебнике.
Решение
def factorial(n: int) -> int:
result = 1
for i in range(2, n + 1):
result *= i
return result
print(factorial(6))
Как это работает
Аккумулятор result умножается на числа от 2 до n. Итеративное решение предпочтительнее рекурсивного: оно не переполняет стек вызовов.
Пример работы
720
Сложность
O(n) по времени, O(1) по памяти.
Частые ошибки
- Не обрабатывать крайние случаи. Пустой ввод, ноль, отрицательные числа — именно там решение чаще всего ломается.
- Смешивать типы данных. Строки и числа ведут себя по-разному; неявное приведение типов — источник неочевидных багов.
- Писать код без проверки на маленьких примерах. Прогоните решение вручную на 2-3 значениях, прежде чем считать задачу решённой.
Если решение заработало с первого раза — всё равно сверьтесь со списком ошибок: половина багов рождается при доработках.
Related:
- василисочка из телеграмма слив 119 фото
- дизайн інтер єру книги
- gabrielle santini porn interracial gangbang
- Медленно и подробно: проверка палиндрома
- 兔崽爱喷水
- Пошаговый разбор: проверка числа на простоту
- Writing tests for bracket sequence validation
- صور مانجه - معرض صور مانجا وكوميكس اباحي للكبار فقط
- Silk-024 Roxy Mendez Jessica Silk Rides Dildo
- Balık Etli Türk İfşa | Türbanlı ve Üniversiteli Porn Fotoğraflar
- Рассматриваем задачу: удаление дубликатов из списка
- Common mistakes in minimum and maximum of a list
- Два подхода: числа Фибоначчи
- meowcenary64 onlyfans
- نودز بورسعيد - صور وفيديوهات ناعمة من مصر
- Пошаговый разбор: решето Эратосфена
- 同志gv 一同看 中国 - 同志GV在线视频
- madpielol
- Медленно и подробно: переворот строки
- roblox rule 34 models
- rus çıtır kız çıplak resimleri
- Проверяем решение тестами: среднее значение списка