Leonardo number/de

From Free Pascal wiki

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

Leonardo Zahlen

Die Leonardo Zahlen(-Folge) ist eine Reihe von Zahlen:

1, 1, 3, 5, 9, 15, 25 ...

Es gibt zwei Methoden um sie zu ermitteln:

rekursive Methode

function LeonardoNumber( n : integer ):integer;
begin
  if n > 1 then 
    result := LeonardoNumber( n - 1 ) + LeonardoNumber( n - 2 ) + 1
  else 
    result := 1;
end;

Für Zahlen kleiner/gleich 1 (kleiner als 2) wird der Rückgabewert fest vorgegeben. Für Zahlen größer als 1 benutzt der Algorithmus jeweils den Vorgänger und Vorvorgänger zur Ermittlung des Rückgabewerts.

Unter Benutzung der Fibonacci Zahlen

function LeonardoNumber2( n : integer ):integer;
begin
  result := 2 * FibonacciNumber( n + 1) - 1
end;

Bem.: Die Fibonacci-Zahlen lassen sich auch in einer geschlossenen, nicht rekursiven Art ermitteln, somit auch die Leonardo-Zahlen das würde aber hier zu weit führen. Siehe dazu den entsprechenden Wikipedia-Artikel unter Fibonacci Zahlen