Fibonacci number/ru

From Free Pascal 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;

См. также