Простите меня, я новичок, но хочу построить рекурсивную функцию, которая принимает натуральное число и возвращает произведение всех натуральных чисел от 1 до заданного числа. Поэтому факториал (5) должен вернуть 120 (5 · 4 · 3 · 2 · 1 = 120). Однако, я думаю, что я просто застрял. Вот что у меня есть до сих пор:Рекурсивная функция - я застрял
def factorial(x):
"""returns the product of all natural numbers from 1 up to the given number
natural number -> natural number"""
if x <= 0:
return 1
else:
return x*(x-1)
Будет ли лучший способ реализовать счетчик?
Вам нужно вернуть значение, подобное этому 'return x * (x-1)'. Кроме того, 'if x <= 0:' вы должны вернуть '1'. В противном случае ваш ответ всегда будет равен нулю. – thefourtheye
good catch @thefourtheye – holaprofesor
см. Связанный с этим вопрос https://stackoverflow.com/questions/5136447/function-for-factorial-in-python – pigletfly