Skip to main content

Command Palette

Search for a command to run...

Step-by-step: factorial computation (part 5d4d)

Updated
•2 min read•View as Markdown

Медленный разбор помогает понять код, а не просто скопировать его.

Задача

Вычислить факториал натурального числа 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) по памяти.

Разбор по шагам

  1. Шаг 1. Входные данные. Проверяем, что приходит в функцию, и какие значения считаются корректными.
  2. Шаг 2. Основной цикл. Именно здесь происходит вся работа; следим за изменениями переменных на каждой итерации.
  3. Шаг 3. Результат. Убеждаемся, что возвращаемое значение соответствует условию задачи, включая крайние случаи.

Когда каждый шаг понятен, доработка решения перестаёт быть лотереей.

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

итерации · включая · Вычислить · Решение · Проверяем · разбор · Входные · данные · первая · циклы · factorial(n · каждый · условию · корректными · Основной · шагам · времени · вызовов · значение · решение · значения · функцию · Сложность · натурального · крайние · python · соответствует · работа · print(factorial(6

More from this blog

N

News

3825 posts