11 / 11 / 2
Регистрация: 17.02.2014
Сообщений: 947
1

Вычисление факториала с использованием рекурсии

09.02.2016, 16:32. Показов 1830. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function Factrl (n: integer): longint; 
begin
 if n = 0 then
 Factrl:= 1;
 if n = 1 then
 Factrl:= 1;
 if n > 1 then
 Factrl:= n*Factrl(n-1);
end; {Factrl}
var
 F : longint;
 j : integer;
begin
 Writeln (#10,'Вычисление факториала(рекурсивная функция) ');
 Writeln;
 for j:= 1 to 12 do
 begin
 F:= Factrl (j);
 Writeln (j:4,'! = ',F:9);
 end;
end.
Допустим j=3, тогда F:= 3*Factrl(2). Factrl(2) мы посчитали на предыдущем шаге. А где это значение сохраняется, чтобы мы его использовали при вычислении Factrl(3)?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.02.2016, 16:32
Ответы с готовыми решениями:

Вычисление факториала числа с использованием рекурсии
Очень срочно нужно, помогите если кто знает. Задача 11 Вычисление факториала числа с...

Вычисление факториала с помощью рекурсии
Составление и отладка программы с внешними модулями. Написать внешний модуль для вычисления с...

Вычисление факториала с использованием функции
function fact(n:byte):integer; var k : longint; j : byte; begin k:= 1; for j:= 2 to n do...

Вычисление чисел Фибоначчи с использованием рекурсии
Написать подпрограмму вычисления чисел Фибоначчи {F}_{i+2}={F}_{i+1}+{F}_{i} ,где {F}_{1}={F}_{2}=1...

4
1646 / 1075 / 1081
Регистрация: 03.07.2013
Сообщений: 4,507
09.02.2016, 17:13 2
jestero, в данном случае оно нигде не хранится и высчитывается заново на каждом этапе итерации цикла - у Вас в условии же написано "вычисление с помощью рекурсии".
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
34461 / 19140 / 4022
Регистрация: 12.02.2012
Сообщений: 32,064
Записей в блоге: 13
09.02.2016, 19:37 3
Цитата Сообщение от jestero Посмотреть сообщение
А где это значение сохраняется,
- в стеке. Вот серия картинок (правда, код сишный, но это не столь важно):
Миниатюры
Вычисление факториала с использованием рекурсии   Вычисление факториала с использованием рекурсии   Вычисление факториала с использованием рекурсии  

Вычисление факториала с использованием рекурсии   Вычисление факториала с использованием рекурсии   Вычисление факториала с использованием рекурсии  

Вычисление факториала с использованием рекурсии   Вычисление факториала с использованием рекурсии  
0
11 / 11 / 2
Регистрация: 17.02.2014
Сообщений: 947
10.02.2016, 06:22  [ТС] 4
Цитата Сообщение от Catstail Посмотреть сообщение
в стеке. Вот серия картинок (правда, код сишный, но это не столь важно):
А в данной программе на паскале первый вызов это factrl 1?
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
34461 / 19140 / 4022
Регистрация: 12.02.2012
Сообщений: 32,064
Записей в блоге: 13
10.02.2016, 09:13 5
Цитата Сообщение от jestero Посмотреть сообщение
А в данной программе на паскале первый вызов это factrl 1?
- нет, factrl(n). factrl(1) - это последний вызов.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.02.2016, 09:13
Помогаю со студенческими работами здесь

Запрограммируйте с использованием рекурсии вычисление функции
Помогите пожалуйста решить задачу! Запрограммируйте с использованием рекурсии вычисление функции...

Функция нахождения факториала и суммы на основе рекурсии
Составить программу, реализующую функции нахождения факториала и суммы на основе рекурсии. У...

Реализовать функции нахождения факториала и суммы на основе рекурсии
Помогите кто может.Составить программу, реализующую функции нахождения факториала и суммы на основе...

Вычисление факториала с использованием рекурсии - найти ошибку в коде
Что я не так делаю, когда вычисляю факториал введенного числа в текстовое поле? Получается 5!=20,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru