Similar presentations:
Рекурсивные алгоритмы
1.
РЕКУРСИВНЫЕАЛГОРИТМЫ
2.
Рекурсия – это приём,позволяющий свести исходную
задачу к одной или нескольким
более простым задачам того же
типа
3.
Чтобы определитьрекурсию, нужно задать
рекуррентную формулу
4.
Рекуррентная формула — этоформула вида, выражающая
каждый член
последовательности через
предыдущих членов
5.
Член последовательности врекурсивном алгоритме объявляется
с помощью процедуры:
PROCEDURE F(n:integer);
6.
Пример рекурсивнго алгоритма:procedure F(n: integer);
begin
writeln(n);
if n < 5 then begin
F(n + 1);
F(n + 3);
end;
end.
7.
№1Алгоритм вычисления значения функции F(n),
где n – натуральное число, задан следующими
соотношениями:
F(1) = 1
F(n) = F(n–1) * (n + 1), при n > 1
Чему равно значение функции F(5)?
8.
№2Алгоритм вычисления значения функции
F(n), где n – натуральное число, задан
следующими соотношениями:
F(0) = 1, F(1) = 1
F(n) = F(n–1) + F(n-2), при n > 1
Чему равно значение функции F(7)?
9.
№3Дан рекурсивный алгоритм:
procedure F(n: integer);
begin
writeln('*');
if n > 0 then begin
F(n-2);
F(n-2);
F(n div 2);
end;
еnd.
Сколько символов "звездочка" будет напечатано на экране
при выполнении вызова F(6)?
10.
№4Дан рекурсивный алгоритм:
procedure F(n: integer);
begin
writeln('*');
writeln('*');
if n > 0 then begin
F(n-2);
F(n div 2);
F(n div 2);
end;
еnd.
Сколько символов "звездочка" будет напечатано на экране при
выполнении вызова F(7)?
11.
№5Дан рекурсивный алгоритм:
procedure F(n: integer);
begin
writeln(n);
if n < 6 then begin
F(n+2);
F(n*3)
end;
еnd.
Найдите сумму чисел, которые будут выведены при вызове F(2).
12.
№6Дан рекурсивный алгоритм:
procedure F(n: integer);
begin
writeln(n);
if n < 7 then begin
F(n+2);
F(n+3)
end;
еnd.
Найдите сумму чисел, которые будут выведены при вызове F(1).
13.
№7• № 5Определите, что выведет на экран программа при вызове
F(9).
procedure F(n: integer);
begin
if n > 0 then begin
F(n – 4);
F(n div 3);
write(n)
end;
еnd.
14.
№8Определите, что выведет на экран программа при вызове F(9)?
procedure F(n: integer);
begin
if n > 0 then begin
F(n – 4);
write(n);
F(n div 2);
end;
еnd.