Программа принимает на вход число и вычисляет факториал этого числа с использованием рекурсивного алгоритма.
Решение задачи
- Записываем введенное пользователем число в отдельную переменную.
- Передаем это число в качестве аргумента в рекурсивную функцию, которая вычисляет факториал.
- Определяем внутри этой функции базовое условие рекурсии: в случае, когда аргумент функции меньше либо равен 1 , рекурсивная функция прекращает свою работу и возвращает в качестве результата 1 .
- В противном случае в качестве результата возвращается число, умноженное на рекурсивную функцию, аргумент которой уменьшен на единицу. И все повторяется заново.
- После того, как рекурсивная функция прекратила свою работу, на экран выводится результат.
- Конец.
Исходный код
Ниже дан исходный код, который осуществляет нахождение факториала числа при помощи рекурсии. Результаты работы программы также даны ниже.
def factorial(n): if (n
Объяснение работы программы
- Пользователь вводит число и оно записывается в переменную n .
- Передаем число n в качестве аргумента в рекурсивную функцию, которая вычисляет факториал этого числа.
- Задаем базу рекурсии при помощи условия n
- В противном случае функция возвращает n * factorial(n-1) и все повторяется заново.
- После того, как функция завершит свою работу, результат выводится на экран.
Результаты работы программы
Пример 1: Введите число:5 Факториал числа равен: 120 Пример 2: Введите число:9 Факториал числа равен: 362880
Источник: pythonist.ru
«Написание простой программы для вычисления факториала (Питон 2)»
Вычисление факториала числа
Вычислить факториал числа, которое ввел пользователь.
Факториал числа представляет собой произведение всех натуральных чисел от 1 до этого числа включительно. Например, факториал числа 7 вычисляется так:
1 * 2 * 3 * 4 * 5 * 6 * 7
Факториал числа обозначается как само число, после которого следует восклицательный знак. Таким образом:
7! = 1 * 2 * 3 * 4 * 5 * 6 * 7 = 5040
С увеличением числа его факториал быстро возрастает. Так если 3! = 6, то уже 10! = 3628800. Поэтому в языке программирования Паскаль не следует вводить большое число, иначе будет возникать ошибка или будет получено неверное значение.
Переменной factorial сначала присваивается значение 1, так как 0! = 1 и 1! = 1.
Если пользователь ввел число больше единицы, то выполняется цикл, в теле которого на каждой итерации значение переменной factorial умножается на следующее натуральное число (значение переменной i ).
Программа на языке Паскаль:
var factorial: longint; n, i: byte; begin write(‘n = ‘); readln(n); factorial := 1; for i := 2 to n do factorial := factorial * i; writeln(‘n! = ‘, factorial); end.
Примеры выполнения программы:
Вычислить факториал введенного числа на python
n = 6 n! = 720
n = 9 n! = 362880
Источник: pas1.ru
Вычислить факториал на Java
Написать метод, который бы вычислял факториал натурального числа. Напоминаем: факториал числа n — это произведение всех натуральных чисел от 1 до n включительно.
Решение:
public class Test <
static int calculateFactorial ( int n ) <
int result = 1 ;
for ( int i = 1 ; i < = n ; i ++ ) <
result = result* i ;
return result ;
public static void main ( String [ ] args ) <
System . out . println ( calculateFactorial ( 4 ) ) ;
Если Вы запустите данный код на своем компьютере, в консоли Вы увидите:
Комментарии:
1.Почему в консоли мы увидели 24? Потому что факториал числа 4 — это 1*2*3*4. Перемножив данные числа, мы получим 24.
2. Мы знаем, что факториал числа n — это произведение всех натуральных чисел от 1 до n. Как видите, первое число всегда 1. Поэтому мы создали переменную
int result = 1 ;
Далее мы использовали цикл for, чтоб перемножать числа от 1 до n:
for ( int i = 1 ; i < = n ; i ++ ) <
result = result* i ;
Таким образом, мы написали метод calculateFactorial(), который вычисляет факториал числа n:
static int calculateFactorial ( int n ) <
int result = 1 ;
for ( int i = 1 ; i < = n ; i ++ ) <
result = result* i ;
return result ;
И далее, чтоб вывести в консоль результат работы calculateFactorial(4), мы написали следующее:
public static void main ( String [ ] args ) <
System . out . println ( calculateFactorial ( 4 ) ) ;
Вот и вся задача.
Есть возможность записаться на наши курсы по Java. Детальнее — у нас на сайте.
- ← Java 9 JShell (Project REPL) Часть 2
- Java 8 New Date/ Time API — Введение →
Источник: vertex-academy.com