Fibonacci number/ru
From Lazarus wiki
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
│
Deutsch (de) │
English (en) │
suomi (fi) │
français (fr) │
русский (ru) │
Числа Fibonacci
Числа Fibonacci задаются следующей последовательностью:
0, 1, 1, 2, 3, 5, 8, 13, 21, ...
Идея заключается в сложении двух последних чисел, и этот результат является следующим значением последовательности.
Рекурсивный способ
function FibonacciNumber( n : integer ): integer;
begin
if n > 1 then result := ( FibonacciNumber( n - 1 ) + FibonacciNumber( n - 2 ) )
else
if n = 0 then result := 0
else result := 1;
end;
Итеративный способ
Вот один из предпочтительных вариантов.
function Fibonacci(n: Integer): Integer;
var
i,u,v,w: Integer;
begin
if n <= 0 then
exit(0);
if n = 1 then
exit(1);
u := 0;
v := 1;
for i := 2 to n do
begin
w := u + v;
u := v;
v := w;
end;
Result := v;
End;