Вводится натуральное число n программа должна найти факториал обозначается как n произведение всех

Вопрос по информатике:

Вводится натуральное число N. Программа должна найти факториал (обозначается как N!) – произведение всех натуральных чисел от 1 до N. Например, 5! = 1 · 2 · 3 · 4 · 5 = 120. Пример: Введите число: 5 5!=120.
Написать через программу Python

Трудности с пониманием предмета? Готовишься к экзаменам, ОГЭ или ЕГЭ?

Воспользуйся формой подбора репетитора и занимайся онлайн. Пробный урок — бесплатно!

  • bookmark_border
  • 11.12.2017 00:38
  • Информатика
  • remove_red_eye 11473
  • thumb_up 29
Ответы и объяснения 1

lytitlengni887

Def fact(n):
if (n==0):
return 1
else:
return n*fact(n — 1)

x = int ( input («Введите число: «) )
y = fact(x)
print(«<>! = <>».format(x, y))

  • 12.12.2017 17:12
  • thumb_up 50
Знаете ответ? Поделитесь им!

Как написать хороший ответ?

Чтобы добавить хороший ответ необходимо:

41 Рекурсия в Python. Рекурсивная функция Часть 1

  • Отвечать достоверно на те вопросы, на которые знаете правильный ответ;
  • Писать подробно, чтобы ответ был исчерпывающий и не побуждал на дополнительные вопросы к нему;
  • Писать без грамматических, орфографических и пунктуационных ошибок.

Этого делать не стоит:

  • Копировать ответы со сторонних ресурсов. Хорошо ценятся уникальные и личные объяснения;
  • Отвечать не по сути: «Подумай сам(а)», «Легкотня», «Не знаю» и так далее;
  • Использовать мат — это неуважительно по отношению к пользователям;
  • Писать в ВЕРХНЕМ РЕГИСТРЕ.
Есть сомнения?

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

Трудности с домашними заданиями? Не стесняйтесь попросить о помощи — смело задавайте вопросы!

Информатика — наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий, обеспечивающих возможность её использования для принятия решений.

Читайте также:
Графический дизайнер какие программы

Источник: online-otvet.ru

Программа для решения факториала на C++

Follow us on Twitter Follow us on rss

Написать программу на C++ для вычисления(нахождения или решения) факториала — это очень популярное задание в сборниках по обучению программированию. Решение этой задачи и многих других размещено в разделе с решениями задач по программированию на C++. В данной статье мы разберем как реализовать решение на языке программирования C++.

Для начала — что такое факториал?

Факториал — это произведение всех натуральных чисел от 1 до N включительно. То есть, если N = 5, то значение факториала

Что такое факториал | Математика

Решить данную задачу можно несколькими способами, мы рассмотрим рекурсивное вычисление факториала и циклическое.

До начала вычислений необходимо узнать N. N может быть больше или равно единице (N>=0). Поэтому для начала напишем каркас приложения, которое будет получать значение N и проверять его. Если N не соответствует, то программа выдаст ошибку «Error: N < 0.«. Листинг программы следующий:

#include using namespace std; int main() < int N; // Объявляем переменную N целочисленного типа cout > N; // Присваиваем введенное значение в переменную if(N >= 0) < // Здесь будет код, вычислящий факториал >else < cout return 0; >

Компилируем, запускаем и вводим любую N, которая меньше 0.

Значение N = -5

Получили ошибку, программа сообщила, что N < 0.

Запускаем и вводим любую N, которая больше или равно 0.

Значение N = 5

Программа ничего не вывела после, значит выполнился участок кода, где написано «Здесь будет код…«.

Теперь нам достаточно вставить в место, где написано «Здесь будет код…» нужную реализацию алгоритма по нахождению факториала.

Нахождение факториала с помощью цикла

Для нахождения факториала напишем свою функцию, которая будет принимать значение N и возвращать результат.

Реализовать алгоритм нахождения факториала очень просто:

int factorial(int N) < int F = 1; for(int i=1; ireturn F; // Возвращаем ответ >

Читайте также:
Билайн ТВ список программ

Что делает функция? Принимает значение N, после чего определяется переменная F, она будет хранить в себе ответ. Запускается цикл for от 1 до N, то есть переменная i будет иметь значения от 1 до N, эти значения мы используем для перемножения переменной F.

Для N=0 значение факториала равно 1. Цикл не будет вообще выполняться, т.к. i должна быть меньшей или равной N, в данном случае первое значение i=1, а N=0. Функция просто возвратит F, которая равно 1.

Для N=1 значение факториала равно 1. Цикл выполнится 1 раз, произойдет умножение F на i, а так как первое значение i = 1, то F так и останется равна 1.

Для остальных значений N цикл будет выполняться N раз, с каждой итерацией i будет увеличиваться на 1 и умножать на себя F.

Вставляем функцию в нашу программу:

#include using namespace std; //Начало функции нахождения факториала int factorial(int N) < int F = 1; for(int i=1; ireturn F; > //Конец функции нахождения факториала int main() < int N; cout > N; if(N >= 0) < cout else < cout return 0; >

Теперь проверим работу программы, для этого скомпилируем, запустим и попробуем ввести различные значения.

Пусть найдет факториал от 0

Факториал от 0

Получили значение 1. Мы знаем, что факториал от 0 равен единице, здесь программа работает верно.

Пусть найдет факториал от 1

Факториал от 1

Получили значение 1. Мы знаем, что факториал от 1 равен единице, здесь программа тоже работает верно.

Пусть найдет факториал от 5

Факториал от 5

Получили значение 120. Проверим: F = 1*2*3*4*5 = 120. Программа верно вычислила факториал.

Рекурсивное нахождение факториала

Для такого способа мы тоже напишем функцию, но она не будет содержать цикла. Рекурсивная функция — это функция, которая вызывает сама себя.

Наша функция factorial() будет принимать значение N и возвращать N*factorial(N-1). То есть будет возвращать значение N умноженное на саму себя, но только с N-1.

Читайте также:
Как отформатировать флешку в fat32 через программу

Код реализации рекурсивной функции нахождения факториала

int factorial(int N) < if(N==0) return 1; // Если factorial(0), то возвращаем 1 if(N==1) return 1; // Если factorial(1), то возвращаем 1 return N*factorial(N-1); // А если нет, то возвращаем значение N*factorial(N-1) >

Как это работает?

Допустим, N = 3. Мы передаем значение функции factorial(3), а она возвращает значение 3 * factorial(2), в свою очередь factorial(2) возвращает 2 * factorial(1), а factorial(1) возвращает 1. И теперь мы идем в обратном порядке:

factorial(2) = 2 * factorial(1) = 2 * 1 = 2;

factorial(3) = 3 * factorial(2) = 3 * 2 = 6;

Вызванная функция factorial(3) возвратит нам 6.

А factorial(0) и factorial(1) сразу вернут 1.

Вставим рекурсивную функцию в программу для нахождения факториала:

#include using namespace std; // Начало рекурсивной функции нахождения факториала int factorial(int N) < if(N==0) return 1; if(N==1) return 1; return N*factorial(N-1); >// Конец функции int main() < int N; cout > N; if(N >= 0) < cout else < cout return 0; >

Компилируем, запускаем и проверяем.

Значение факториала для 0

Факториал от 0

Вывела 1, а мы знаем, что факториал от 0 равен 1. Значит работает верно.

Значение факториала для 1

Факториал от 1

Вывела 1, а мы знаем, что факториал от 1 равен 1. Значит работает верно.

Значение факториала для 5

Факториал от 5

Получили значение 120. Проверим:

Программа верно вычислила факториал.

Послесловие

Итак, мы написали две функции разными способами, которые выполняют решают одну и ту же задачу — вычисление значения факториала. Эта задача входит в список с решениями задач по программированию, если вам нужно решить еще задачу — загляните туда, возможно вы найдете нужное решение. Если остались вопросы, то задавайте их в комментариях.

Для вас это может быть интересно:

Раздел: Алгоритмы Программирование Метки: C++, вычисление, код, программирование, факториал, функция

Программа для решения факториала на C++ : 5 комментариев

  1. Оксана 27.07.2017 Очень полезная статья, сразу все стало понятно))Спасибо!

Источник: nicknixer.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru