31 lines
564 B
ObjectPascal
31 lines
564 B
ObjectPascal
function MultiFact(Num,Deg: integer): integer;
|
|
{Multifactorial from Degree and Number}
|
|
var N: integer;
|
|
begin
|
|
N:=Num;
|
|
Result:=Num;
|
|
if N = 0 then Result:=1
|
|
else while true do
|
|
begin
|
|
N := N - deg;
|
|
if N<1 then break;
|
|
Result:=Result * N;
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure ShowMultifactorial(Memo: TMemo);
|
|
{Show combinations of deg/num of multifactorial}
|
|
var Deg,Num: integer;
|
|
var S: string;
|
|
begin
|
|
S:='';
|
|
for Deg:=1 to 5 do
|
|
begin
|
|
S:=S+Format('Degree: %d:',[Deg]);
|
|
for Num:=1 to 10 do S:=S+' '+Format('%7d',[MultiFact(Num,Deg)]);
|
|
S:=S+#$0D#$0A;
|
|
end;
|
|
Memo.Lines.Add(S);
|
|
end;
|