Leonardo number/de
From Free Pascal wiki
Jump to navigationJump to searchThe 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