21 lines
562 B
ObjectPascal
21 lines
562 B
ObjectPascal
##
|
|
function calc(fun: integer-> (integer, integer); n: integer): decimal;
|
|
begin
|
|
var temp := decimal(0.0);
|
|
for var ni := n to 1 step -1 do
|
|
begin
|
|
var (a, b) := fun(ni);
|
|
temp := b / (a + temp);
|
|
end;
|
|
result := fun(0)[0] + temp;
|
|
end;
|
|
|
|
function fsqrt2(n: integer) := (if n > 0 then 2 else 1, 1);
|
|
|
|
function fnapier(n: integer) := (if n > 0 then n else 2, if n > 1 then n - 1 else 1);
|
|
|
|
function fpi(n: integer) := (if n > 0 then 6 else 3, (2 * n - 1) * (2 * n - 1));
|
|
|
|
println(calc(fsqrt2, 200));
|
|
println(calc(fnapier, 200));
|
|
println(calc(fpi, 10000));
|