Факториал.

(открыть в новой вкладке)

Условие:

Найти факториал числа используя рекурсию.

Код:

#####################################################################################################
"""В этом блоке применяется рекурсивный способ решения задачи """
#####################################################################################################

def factorial(digit):
    if digit == 1:                                                      # базовый случай
        result = 1
    else:                                                               # рекурсия
        result = digit * factorial(digit - 1)        
    return result


while True:
    try:
        digit = input("%100s" % "Введите целое число: ")
        digit = int(digit)
    except:
        print("%99s" % "Вы ввели не число.")
        print()
    else:
        break

result = factorial(digit)
print()
print("%99s" % result)
print("##########################################################################################################################")

#####################################################################################################
"""В этом блоке применяется не рекурсивный способ решения задачи """
#####################################################################################################

while True:
    try:
        digit = input("%100s" % "Введите целое число: ")
        digit = int(digit)
    except:
        print("%99s" % "Вы ввели не число.")
        print()
    else:
        break

result = 1
while True:
    if digit == 1:
        break
    result *= digit
    digit -= 1

print()
print("%99s" % result)