//PascalABC.NET 3.1 сборка 1200
function F1(n: integer): integer;
begin
if n = 1 then
F1 := 2
else if n = 2 then
F1 := 1
else
F1 := F1(n - 1) + F1(n - 2);
end;
function F2(n: integer): integer;
begin
if n = 1 then
F2 := 1
else if n = 2 then
F2 := 2
else
F2 := F2(n - 1) - F2(n - 2) + 2 * n;
end;
begin
var n:= ReadInteger('n=');
Writeln(F1(n)); // вариант1
Writeln(F2(n)); // вариант2
end.
дополнительный алгоритм - инкапсулированная процедура или функция не зависимая от основного алгоритма, исполняет свою часть задачи в зависимости от переданых параметров