Алгоритм вычисления значения функции f(n), где n- натуральное число, задан следующими соотношениями: f(1)=1, f(2)=2, f(n)=2*f(n-1)+(n-2)*f(n-2), при n> 2. чему равно значение функции f(6)?
В приложении дана блок-схема с алгоритмом, вычисляющим значение функции F по рекуррентной схеме. Ниже приводится запись программы на языке Pascal, содержащая две функции - рекуррентную F (строго в соответствии с алгоритмом) и рекурсивную Fr. Вывод иллюстрирует работу программы для значения аргумента n=6
function F(n: integer): integer; {рекуррентная} var i, p: integer; fn1, fn2: integer;
begin case n of 1: Result := 1; 2: Result := 2; else begin fn2 := 1; fn1 := 2; for i := 3 to n do begin p := 2 * fn1 + (i - 2) * fn2; fn2 := fn1; fn1 := p end; Result := p end end end;
function Fr(n: integer): integer; {рекурсивная - оцените изящество рекурсии!} begin case n of 1: Result := 1; 2: Result := 2; else Result := 2 * Fr(n - 1) + (n - 2) * Fr(n - 2) end end;
begin writeln(F(6), ' ', Fr(6)) end.
Тестовое решение: 142 142
ответ: значение функции F(6) равно 142.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку