Ich wollte in C++ ein Programm schreiben, was die fakultät berechnet, mit den standart Variablen in C++, kann ich maximal bis 20! rechnen, in Python gibt es diese Einschränkung nicht , in Python hat es ~5 min gedauert bis er 200000! ausgerechnet hat, aber Python ist eine langsame Sprache, ich würde das gerne in C++ realisieren, wie funktioniert die Logik dahinter???
C++, iterativ fakultät berechnen,
-
-
Wie sieht denn dein Code aus?
Mein Ansatz wäre die Fakultätsfunktion selbst zu implementieren, nach dem Schema n * n-1 * ... * 1 und Sonderfall 1! extra abzufangen. Ob mit einer Schleife oder rekursiv ist dann dir überlassen. Wüsste nicht, wieso C++ da streiken sollte. -
ob ich das mit einer schleife oder rekursiv mache ist nicht das problem, sollte ich versuchen 20 000 000! auszurechnen, gibt es einen overflow.
-
Dann solltest du - je nach C++ Version, die du hast - entweder auf
unsigned long int
(0 bis 4.294.967.295) oder bestenfallsunsigned long long int
(0 bis 18.446.744.073.709.551.615) umsteigen -
unsigned long long int hat ~18,446 * 10^18, 20 000 000! = 2,112 * 10^137334714
-
Dann musst du dir wohl eine Libary suchen. Ich habe auf die schnelle mal gmplib.org/ gefunden. Wie gut die ist, kann ich jedoch nicht sagen.
-
Teilen
- Facebook 0
- Twitter 0
- Google Plus 0
- Reddit 0