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