![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Расчёт числа Эйлера
Alois © (2005-11-18 22:55:00)Уважамые мастера, поогите плиз. Как рассчитать число Эйлера рекурсивно? Формула расчёта: sum = 1/0! + 1/1! + 1/2! + ... + 1/n!
Separator (2005-11-19 21:12:00) [1]О блин, классно
Но учти, так дольше
Alois (2005-11-19 20:42:00) [2]Спасибо всем, кто откликнулся!
Надо было так:
function eulerRekursiv(n: integer): double;
begin
if n = 0 then result:= 1
else
result := 1.0/fact(n) + eulerRekursiv(n - 1);
end;
MBo (2005-11-19 11:00:00) [3]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;
Virgo_Style (2005-11-19 09:01:00) [4]kami © (18.11.05 23:29) [3]
Точно, спасибо :-)
Alois (19.11.05 1:11) [4]
Как именно не работает?
Alois (2005-11-19 01:11:00) [5]Спасибо, но что-то тоже не работает.
kami (2005-11-18 23:29:00) [6]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-18 23:13:00) [7]Большое спасибо!
Virgo_Style (2005-11-18 23:05:00) [8]
function Eiler(N:Integer):Double;//наверняка пишется не так, надеюсь, он не обидится -)
begin
if N=0 then
Result:=1/Fact(0)
else
Result:=1/Fact(N)+1/Eiler(N-1);
end;
Надеюсь, ничего не напутал. Если встроенной функции факториала нет - напиши сам, можно тоже с рекурсией.