Рекурсия
Code
function fib (n:byte):integer;
begin
if n<=2 then
fib:=1
else
fib:=fib(n-1)+fib(n-2);
Добавлено (23.05.12, 10:01)
---------------------------------------------
по формуле
f(n)=(((1 + Sqrt(5))/2)^n - ((1 - Sqrt(5))/2)^n)/Sqrt(5)
$$\frac{1}{\sqrt{5}}((\frac{1+\sqrt{5}}{2})^{n}-(\frac{1-\sqrt{5}}{2})^{n}$$
Code
function step(x,y:real):real//функция вычисления x в степени y
begin
step:=exp(ln(x) * y)
end;
function fib (n:byte):integer;
var t1,t2: real;//временные переменный, только для лучшей читаемости кода.
t1:=(1+sqrt(5))/2;
t2:=(1+sqrt(5))/2;
fib:=(step(t1,n)-step(t2,n))/sqrt(5);
end;