Факториал
Условие
Факториал
Факториал числа \(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, и нам не нужны никакие сложные формулы — достаточно накопить произведение в переменной.
План решения:
- Прочитай
n. - Заведи переменную
ans = 1. - Для всех
iот 2 доnвключительно умножай:ans *= i. - Выведи
ans.
Мини-сниппет (идея обновления ответа):
ans = 1for i in range(2, n + 1): ans *= i
Сложность: O(n) умножений, при n <= 20 это мгновенно. В Python целые числа могут быть сколь угодно большими, а здесь и вовсе 20! легко помещается.
Частая ошибка: неправильно обработать n = 0 или начать цикл с 0/1 так, что получится лишний множитель. Надёжный вариант — стартовать с ans = 1 и умножать с 2.
Решить задачу с автопроверкой на Python →
Куда дальше
- Школьный этап ВсОШ по информатике — как устроен первый этап и план подготовки за четыре недели
- БВИ по олимпиадам: в какие вузы берут — правила приёма вузов, разобранные построчно, со ссылкой на приказ у каждой строки
- Перечневые олимпиады: что это и что дают — весь перечень Минобрнауки: уровни, срок диплома, разрезы по предметам и классам