Leonardo number/de

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)

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