Паскаль: 43 - Рекурсивные алгоритмы Помогите, что знаете, хотя бы на 3 задания
2. Алгоритм вычисления значения функции F(n), где n - натуральное число, задан следующими соотношениями:
F(0) = 1, F(1) = 1
F(n) = F(n-1)+F(n-2), при n > 1
Чему равно значение функции F(7)?
3. Алгоритм вычисления значения функции F(n), где n - натуральное число, задан следующими соотношениями:
F(0) = 1, F(1) = 1
F(n) = F(n-1)*F(n-2)+2, при n > 1
Чему равно значение функции F(5)?
5. Дан рекурсивный алгоритм:
procedure F(n: integer);
begin
writeln('*');
if n > 0 then begin
F(n-2);
F(n-2);
F(n div 2);
end
end;
Сколько символов "звездочка" будет напечатано на экране при выполнении вызова F(6)?
6. Дан рекурсивный алгоритм:
procedure F(n: integer);
begin
writeln('*');
if n > 0 then begin
F(n-3);
F(n-2);
F(n div 2);
F(n div 2);
end
end;
Сколько символов "звездочка" будет напечатано на экране при выполнении вызова F(6)?
7. Дан рекурсивный алгоритм:
procedure F(n: integer);
begin
writeln('*');
if n > 0 then begin
writeln('*');
F(n-2);
F(n-2);
F(n div 2);
end
end;
Сколько символов "звездочка" будет напечатано на экране при выполнении вызова F(6)?
Ответы
Задание 2.
program prog;
function F(n:integer):integer;
begin
if n<=1 then F:=1
else F:=F(n-1)+F(n-2)
end;
begin
write(F(7))
end.
Вывод программы: 21
Задание 3.
program prog;
function F(n:integer):integer;
begin
if n<=1 then F:=1
else F:=F(n-1)*F(n-2)+2
end;
begin
write(F(5))
end.
Вывод программы: 87
Задание 5.
program prog;
procedure F(n:integer);
begin
write('*');
if n > 0 then begin
F(n-2);
F(n-2);
F(n div 2);
end
end;
begin
F(5);
end.
Вывод программы (34 звёздочки):
**********************************
Задание 6.
program prog;
procedure F(n: integer);
begin
write('*');
if n > 0 then begin
F(n-3);
F(n-2);
F(n div 2);
F(n div 2);
end
end;
begin
F(6);
end.
Вывод программы (97 звёздочек):
*************************************************************************************************
Задание 7.
program prog;
procedure F(n: integer);
begin
write('*');
if n > 0 then begin
write('*');
F(n-2);
F(n-2);
F(n div 2);
end
end;
begin
F(6);
end.
Вывод программы (77 звёздочек):
*****************************************************************************