Напишите функцию, которая будет принимать число num и возвращать его двойной факториал. Математическая формула двойного факториала следующая.

Если num — четное число:

num !! = num (num - 2)(num - 4)(num - 6) ... (4)(2)

Если num — нечетное число:

num !! = num (num - 2)(num - 4)(num - 6) ... (3)(1)

Если num = 0 или num = -1, тогда num !! = 1.

Примечания

  • Исходим из того, что num будет больше или равно -1.
  • Двойной факториал — не то же самое, что умноженный на 2.
  • Попробуйте решить при помощи рекурсии.

Примеры

double_factorial(0) ➞ 1
double_factorial(2) ➞ 2
double_factorial(9) ➞ 945
# 9*7*5*3*1 = 945
double_factorial(14) ➞ 645120

Варианты решения

def double_factorial(n):
    return 1 if n < 2 else n * double_factorial(n - 2)
def double_factorial(num):
    if num in (0, 1) or num < 0:
        return 1
    return num * double_factorial(num - 2)

Марина

Recent Posts

10 удалённых Python-вакансий

Если вы ищете работу на Python, на Talanto.work сейчас есть варианты для junior, middle, senior…

6 месяцев ago

Где искать Python-вакансии в 2026 году: зачем на Talanto.work появился отдельный сценарий поиска

Рынок Python-вакансий большой, но удобным его назвать сложно. Формально вакансий много, однако в реальном поиске…

6 месяцев ago

Срезы в Python со всеми подробностями

Срезы в Python — это больше, чем a[2:7]. В статье — быстрый разбор полезных приёмов:…

8 месяцев ago

Возведение в степень в Python: полное руководство

В этой статье мы рассмотрим возведение в степень в Python с помощью различных методов, от…

9 месяцев ago

Как удалить дубликаты из списка Python?

Дубликаты в списке Python — частая проблема. В статье показано, как быстро убрать повторы, в…

9 месяцев ago

Виртуальный (shared) хостинг от SpaceWeb: технический обзор

Услуга виртуального хостинга на SpaceWeb позволяет арендовать часть сервера (shared-сервера) и разместить на нём свой…

11 месяцев ago