Кстати, вот функция расчета чисел фибоначи с памятью:
Код:
var
Fibs : Array Of Int64;
function Fib(N : Int64) : Int64;
begin
If N < 1 Then Raise Exception.Create('Fib: N не может быть < 1.');
If N < 3
Then Result := 1
Else
Begin
If Length(Fibs) >= N
Then Result := Fibs[N-1]
Else Result := Fib(N-1) + Fib(N-2);
End;
If N = Length(Fibs) + 1 Then
Begin
SetLength(Fibs,N);
Fibs[N-1] := Result;
End;
end;
initialization
SetLength(Fibs,0);
finalization
SetLength(Fibs,0);
Считает до N = 92. Дальше - переполнение. Зато расчет абсолютно точный.