Фарит абый
23-12-2010, 22:13
Вычислить выражение sqrt(6+2*sqrt(7+3*sqrt(8+4*sqrt(9+...))))
Рекурсивная функция преполагает некоторое условие остановки, я предположил что если N <= 1, то f := 1. Не могу ничем объяснить (обычно такое).
function f(N :integer; a :byte; b :byte) :real;
begin
if N <= 1 then f := 1
else begin
f := sqrt(a + b * f(N, a, b));
dec(N); inc(a); inc(b)
end
end;
var
k :integer;
begin
readln(k);
write(f(k, 6, 2))
end.
Ошибка 106: stack overlow error