В этой статье Факториальная программа на Python мы собираемся написать программу на Python, чтобы найти факториал числа N.

В программировании существует множество способов выполнения простых или сложных задач или решения проблемы, способы или, можно сказать, подходы не ограничены в программировании, но в этой статье подходы, которые мы собираемся использовать, упомянуты ниже:

  • Факториальная программа на Python с использованием цикла
  • Факториальная программа на Python с использованием рекурсивного подхода


Факториальная программа на Python с использованием цикла

def factorial(n):
  print("user input is: {}\n".format(n))

  fac = 1

  # check if the number is negative, positive or zero
  if n < 0:
    print("can't factorial of negative numbers")
    return 0
  elif n == 0:
    print("The factorial of 0 is 1")
    return 1
  else:
    for i in range(1, n + 1):
      fac = fac * i
      print("i = {}, {} * {} = {}".format(i, i, fac, fac))

  return fac


print("Factorial Program in Python")
# user input which will be passed to
# factorial function to get factorial
userInput = 7
fac = factorial(userInput)

print("\nFactorial of {} is {}".format(userInput, fac))
Войти в полноэкранный режим

Выйти из полноэкранного режима

Как вы можете видеть в этом примере, мы используем цикл для диапазона, и мы начинаем с цикла от 1 до n+1, поэтому он не даст нам неправильного значения, вы даже можете запустить это, чтобы получить факториал 1 и два также, и это будет работать просто отлично.

Если вы запустите этот код, вы получите следующий вывод:

$ python main.py
Factorial Program in Python
user input is: 7

i = 1, 1 * 1 = 1
i = 2, 2 * 2 = 2
i = 3, 3 * 6 = 6
i = 4, 4 * 24 = 24
i = 5, 5 * 120 = 120
i = 6, 6 * 720 = 720
i = 7, 7 * 5040 = 5040

Factorial of 7 is 5040
Войти в полноэкранный режим

Выйти из полноэкранного режима

Я оставляю тестирование на отрицательные и нулевые условия, чтобы вы попытались запустить код и прокомментировать свой вывод в поле для комментариев.


Факториальная программа на Python с использованием рекурсивной функции

Ниже приведен код того, как рекурсивно получить факториал числа n в python:

# Factorial Program in Python


def factorial(n):
  # check if the number is negative, positive or zero
  if n < 0:
    print("can't factorial of negative numbers")
    return 0
  elif n == 0 or n == 1 :
    return 1
  else:
    # calling factorial function
    # so it can work recursivly
    return (n * factorial(n-1))



# user input which will be passed to
# factorial function to get factorial
userInput = 5
fac = factorial(userInput)

print("\nFactorial of {} is {}".format(userInput, fac))
Войти в полноэкранный режим

Выйти из полноэкранного режима

В этом коде, если посмотреть, мы добавили оба условия, которые мы использовали в цикле, а также добавили больше в пределах n == 0. Сначала мы проверяем, является ли заданное значение отрицательным или нет, если отрицательное, затем возвращаемся назад и предупреждаем пользователя о вводе, в next elif мы добавили условие, поэтому всякий раз, когда n становится 1 или 0, затем возвращайтесь из этой последовательности и возвращайте 1 как факториал, и в конце мы вызываем нашу факториальную функцию, чтобы она могла обрабатывать входные данные до тех пор, пока n не станет 1 или 0, 1 будет первым в обратной последовательности, поскольку мы используем оператор минус для вычитания 1 каждый раз из n, поэтому, в конце концов, когда n становится 1, он немедленно возвращает 1 и начинает последовательно умножать каждое значение для окончательного возвращаемого значения или ответа.

Чтобы понять рекурсивный подход, вам нужно хорошо понимать, как функция работает рекурсивно.

Вы увидите следующий вывод всякий раз, когда запускаете приведенный выше код:

$ python main.py
Factorial of 5 is 120
Войти в полноэкранный режим

Выйти из полноэкранного режима

Эта статья изначально размещена на программированиеeeksclub.com

Мой личный сайт блога: Клуб программистов
Моя страница в Фейсбуке: Клуб программистов
Мой канал в телеграмме: Клуб программистов
Мой аккаунт в Твиттере: Кулдип Сингх