Факториал

тема: Основы · уровень: средний

Условие

Факториал

Факториал числа \(n\) — это произведение \(1 \cdot 2 \cdot \dots \cdot n\). По определению \(0! = 1\). Найдите \(n!\).

Входные данные

Одно целое число \(n\) (\(0 \le n \le 20\)).

Выходные данные

Одно число — \(n!\).

Пример

Вход:

5

Выход:

120

Как решать — идея подхода

Приём: Итеративное умножение (цикл)

Ключевое наблюдение: факториал — это просто последовательное произведение 1 * 2 * ... * n. Для n = 0 по определению ответ равен 1, и это удобно: если начать результат с 1 и умножать дальше, то при n = 0 цикл просто не выполнится и всё уже верно.

Почему работает цикл: каждый следующий множитель увеличивается на 1, и нам не нужны никакие сложные формулы — достаточно накопить произведение в переменной.

План решения:

Мини-сниппет (идея обновления ответа):

Сложность: O(n) умножений, при n <= 20 это мгновенно. В Python целые числа могут быть сколь угодно большими, а здесь и вовсе 20! легко помещается.

Частая ошибка: неправильно обработать n = 0 или начать цикл с 0/1 так, что получится лишний множитель. Надёжный вариант — стартовать с ans = 1 и умножать с 2.

Решить задачу с автопроверкой на Python →

Куда дальше