Реализация функции для расчёта факториала

Факториал неотрицательного целого n — произведение чисел от 1 до n; по определению 0! = 1. Итеративная реализация избегает ограничения глубины рекурсии.

Короткий ответ

Что ответить на собеседовании

Факториал неотрицательного целого n — произведение чисел от 1 до n; по определению 0! = 1. Итеративная реализация избегает ограничения глубины рекурсии.

Подробный разбор

Ответ с пояснениями

Условие

Создайте функцию, которая вычисляет факториал переданного ей числа.

def factorial(n):
    # ваш код здесь
    pass

Ответ

Факториал неотрицательного целого n — произведение чисел от 1 до n; по определению 0! = 1. Итеративная реализация избегает ограничения глубины рекурсии.

def factorial(n):
    if isinstance(n, bool) or not isinstance(n, int):
        raise TypeError('n должно быть целым числом')
    if n < 0:
        raise ValueError('n должно быть неотрицательным')
    result = 1
    for value in range(2, n + 1):
        result *= value
    return result

factorial(5) вернёт 120, factorial(0) — 1. Выполняется O(n) умножений, но стоимость умножения растёт с размером результата: Python использует целые произвольной точности. Для прикладного кода обычно достаточно math.factorial.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее