Напишите функцию, которая будет принимать число 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

Библиотека Pydantic: валидация данных на Python

Pydantic - это мощная библиотека проверки данных и управления настройками для Python, созданная для повышения…

1 неделя ago

7 наилучших библиотек визуализации Python на 2024 год

Python предлагает набор библиотек, удовлетворяющих различные потребности в визуализации, будь то академические исследования, бизнес-аналитика или…

2 недели ago

Как преобразовать строку в байты в Python

В Python для представления данных в двоичной форме можно использовать байты. Из этой статьи вы…

3 недели ago

Что такое Werkzeug?

В этой статье рассказывается о том, что такое Werkzeug и как Flask использует его для…

3 недели ago

Как прибавить дни, месяцы и годы к дате в Python

При работе с датами часто возникает необходимость прибавлять к дате или вычитать из нее различные…

1 месяц ago

Социальная аутентификация в приложении на Flask

В этом руководстве мы рассмотрим, как добавить социальную аутентификацию с помощью GitHub и Google в…

2 месяца ago