Moin,
...wird unnütz viel Stack verbraucht..... Stacküberlauf eintreten,
Günstiger ist es hier, das Pferd von hinten aufzuzäumen:
Delphi-Quellcode:
function Fakultaet(n: Integer): Integer;
begin
if n = 1 then
result := 1
else
result := n*Fakultaet(n-1);
end;
Dann sparen wir uns doch am besten die Rekursion komplett(spart noch mehr Stack) und frühstücken das ganze mit einer simplem loop ab....
Delphi-Quellcode:
function Fakultaet(n: Integer): Integer;
var i:integer;
begin
result := 1;
// just start at 2, because 0! and 1! is 1
for i:= 2 to n do
result := result * i;
end;
P.S.: funktioniert natürlich so nur für die Fakultät von positiven Zahlen