20 Fakultät ist 19 Ziffern lang. 100 Fakultät ist 158 Ziffern lang und nimmt 500 Bits auf! Es ist eigentlich:
%Vor%Keiner der Standardtypen funktioniert hier für Sie, sondern Sie müssen Ihre eigene Routine für den Umgang mit so großen Zahlen implementieren.
Zum Beispiel müssen Sie akzeptieren, dass das Multiplizieren von zwei 32-Bit-Werten zusammen zu einem 64-Bit-Ergebnis führen kann.
Dies war eine gängige Praxis, um große Zahlen in den Tagen von 8-Bit-Prozessoren zu berechnen. Es wird als arbiträre Arithmetik bezeichnet.
Hier ist ein Link, um zu beschreiben, wie das gemacht wurde. Zugegeben, es ist für Assembler, aber es gilt immer noch hier. Sie müssen die Standardgrößen von int
auf Ihrem System berücksichtigen.
Zumindest unter Linux könnte eine mögliche Bibliothek mit mehreren Genauigkeiten GMP sein (sie funktioniert auch unter Solaris, Windows, MacOSX usw.). .).
Dieser Code wird bis zu 170!
helfen. Verwenden Sie double für die faktorielle Funktion, da normal int oder long int dieses faktorielle Ergebnis nicht unterstützt, double unterstützt bis zu 1.7e308
.
Tags und Links c