Форум: "Начинающим";
Текущий архив: 2005.12.04;
Скачать: [xml.tar.bz2];
ВнизРасчёт числа Эйлера Найти похожие ветки
← →
Alois (2005-11-18 22:55) [0]Уважамые мастера, поогите плиз. Как рассчитать число Эйлера рекурсивно? Формула расчёта: sum = 1/0! + 1/1! + 1/2! + ... + 1/n!
← →
Virgo_Style © (2005-11-18 23:05) [1]
function Eiler(N:Integer):Double;//наверняка пишется не так, надеюсь, он не обидится -)
begin
if N=0 then
Result:=1/Fact(0)
else
Result:=1/Fact(N)+1/Eiler(N-1);
end;
Надеюсь, ничего не напутал. Если встроенной функции факториала нет - напиши сам, можно тоже с рекурсией.
← →
Alois (2005-11-18 23:13) [2]Большое спасибо!
← →
kami © (2005-11-18 23:29) [3]Virgo_Style © (18.11.05 23:05) [1]
Result:=1/Fact(N)+1/Eiler(N-1);
Вроде, должно бытьResult:=1/Fact(N)+Eiler(N-1);
Надеюсь, тоже ничего не напутал. :)
← →
Alois (2005-11-19 01:11) [4]Спасибо, но что-то тоже не работает.
← →
Virgo_Style © (2005-11-19 09:01) [5]kami © (18.11.05 23:29) [3]
Точно, спасибо :-)
Alois (19.11.05 1:11) [4]
Как именно не работает?
← →
MBo © (2005-11-19 11:00) [6]Cчет в прямом порядке:
function E(N: Integer): Double;
function Recurse(M: Integer; InvFac: Double): Double;
begin
if M = N then
Result := InvFac / M
else begin
InvFac := InvFac / M;
Result := InvFac + Recurse(M + 1, InvFac);
end;
end;
begin
Result := 1 + Recurse(1, 1);
end;
← →
Alois (2005-11-19 20:42) [7]Спасибо всем, кто откликнулся!
Надо было так:
function eulerRekursiv(n: integer): double;
begin
if n = 0 then result:= 1
else
result := 1.0/fact(n) + eulerRekursiv(n - 1);
end;
← →
Separator © (2005-11-19 21:12) [8]О блин, классно
Но учти, так дольше
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2005.12.04;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.038 c