Hi, ich bin gerade dabei, ein Programm zu schreiben, in dem ich die Fakultät von x ausrechnen will..
Hierfür verwende ich den Code, den ich hier gefunden habe.
Delphi-Quellcode:
function NFak(Val: Integer): Int64;
begin
if Val < 0
then
raise Exception.Create('
Val muss größer/gleich 0 sein.');
Result := 1;
repeat
Result := Result * Val;
Dec(Val);
until Val <= 1;
end;
Das Problem ist jetzt aber, dass das Ergebnis nur bis 20 richtig "erscheint", da bei 21 schon eine negative Zahl als Lösung rauskommt. Gibt es eine Möglichkeit dies weniger Speicherintensiv(muss aber rekusiv sein) zu lösen, damit man auch über die 20 hinaus kommt?