Fibonacci number/de

From Free Pascal wiki

Deutsch (de) English (en) suomi (fi) français (fr) русский (ru)


Die Fibonacci-Zahlen-Folge ist eine Reihe von Zahlen:

0, 1, 1, 2, 3, 5, 8, 13, 21, ...

Die Idee dahinter ist, die zwei vorhergehenden Zahlen zu addieren um die nächste zu erhalten. Sie benannt nach Leonardo Fibonacci einem Rechengelehrten (heute würde man sagen Mathematiker) aus Pisa. Bekannt war die Folge lt. Wikipedia aber schon in der Antike bei den Griechen und Indern.

rekursive Art

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;

iterative Art

Diese ist vorzuziehen.

function Fibonacci(n: Integer): Integer;
var
  i, u, v, w: Integer;
Begin
  if n <= 0 then
    Result := 0
  else if n = 1 then 
    Result := 1
  else
  begin
    u := 0;  
    v := 1;
    for i := 2 to n do 
    begin
      w := u + v;
      u := v;
      v := w;
    end;
    Result := v;
  end;
End;

Siehe auch ...