(Задача на рекурсию, на Паскале) Формула Ламберта. Вычислить приближенное значение е по формуле Ламберта e(k)=(a(k)+b(k))/(a(k)-b(k)); a(k)=(4*k-2)*a(k-1)+a(k-2); a(1)=2; a(0)=1; b(k)=(4*k-2)*b(k-1)+b(k-2); b(1)=1; b(0)=0.
Заранее спасибо...
function b(k: integer): real;
begin
if k < 2 then b := k
else b := (4*k-2) * b(k-1) + b(k-2);
end;
function a(k: integer): real;
begin
if k < 2 then a := k + 1
else a := (4*k-2) * a(k-1) + a(k-2);
end;
function e(k: integer): real;
begin
e := (a(k) + b(k)) / (a(k) - b(k));
end;
begin
writeln(e(3)); { Для увеличения точности - увеличивай параметр }
end.
var T: integer;(только надо как-то ограничить ввод T, потому что рекурсия все-таки, стек переполнить очень просто, программа начнет вылетать... Тем более, что уже e(3) дает ответ с точностью до 9 знака после запятой)...
begin
write('T = '); readln(T);
writeln(e(T));
end.