38 lines
777 B
ObjectPascal
38 lines
777 B
ObjectPascal
type TIntArray = array of integer;
|
|
|
|
function GetLeonardoNumbers(Cnt,SN1,SN2,Add: integer): TIntArray;
|
|
var N: integer;
|
|
begin
|
|
SetLength(Result,Cnt);
|
|
Result[0]:=SN1; Result[1]:=SN2;
|
|
for N:=2 to Cnt-1 do
|
|
begin
|
|
Result[N]:=Result[N-1] + Result[N-2] + Add;
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TestLeonardoNumbers(Memo: TMemo);
|
|
var IA: TIntArray;
|
|
var S: string;
|
|
var I: integer;
|
|
begin
|
|
Memo.Lines.Add('Leonardo Numbers:');
|
|
IA:=GetLeonardoNumbers(25,1,1,1);
|
|
S:='';
|
|
for I:=0 to High(IA) do
|
|
begin
|
|
S:=S+' '+Format('%6d',[IA[I]]);
|
|
if I mod 5 = 4 then S:=S+#$0D#$0A;
|
|
end;
|
|
Memo.Lines.Add(S);
|
|
Memo.Lines.Add('Fibonacci Numbers:');
|
|
IA:=GetLeonardoNumbers(25,0,1,0);
|
|
S:='';
|
|
for I:=0 to High(IA) do
|
|
begin
|
|
S:=S+' '+Format('%6d',[IA[I]]);
|
|
if I mod 5 = 4 then S:=S+#$0D#$0A;
|
|
end;
|
|
Memo.Lines.Add(S);
|
|
end;
|