Напишите программу на языке Python, которая вычисляет факториал числа. Задача состоит в вычислении значения n!. Входные

  • 18
Напишите программу на языке Python, которая вычисляет факториал числа. Задача состоит в вычислении значения n!. Входные данные: целое неотрицательное число n (0≤n≤15). Выходные данные: результат вычисления. Пример ввода/вывода: Ввод: 3
Sabina
18
, Задача на вычисление факториала числа является одной из классических задач программирования. Для ее решения на языке Python можно использовать цикл или рекурсию. Давайте опишем оба варианта решения.

Вариант 1: Решение с использованием цикла.
В данном варианте программа будет использовать цикл for для последовательного умножения всех чисел от 1 до n.

python
def factorial(n):
result = 1
for i in range(1, n+1):
result *= i
return result

n = int(input("Введите число n: "))
print(f"Факториал числа {n} равен {factorial(n)}.")


Обоснование:
- Программа начинает с инициализации переменной `result` со значением 1, так как умножение на 1 не меняет результат.
- Затем, с помощью цикла for, программа умножает значение `result` на каждое число от 1 до n.
- После завершения цикла, функция возвращает итоговый результат.

Вариант 2: Решение с использованием рекурсии.
В данном варианте программа будет вызывать саму себя для вычисления факториала числа n.

python
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)

n = int(input("Введите число n: "))
print(f"Факториал числа {n} равен {factorial(n)}.")


Обоснование:
- Функция `factorial` определяется рекурсивно, то есть она вызывает саму себя.
- Если `n` равно 0, функция возвращает 1, так как факториал числа 0 равен 1.
- В противном случае, функция возвращает произведение числа `n` на факториал числа `(n-1)`.
- Рекурсивные вызовы продолжаются до достижения базового случая (при `n = 0`), после чего результаты суммируются на каждом уровне вызова.

Оба варианта решения корректны и дают одинаковые результаты для заданных ограничений. Выбор между ними зависит от предпочтений программиста и требований к производительности.