Supportnet Computer
Planet of Tech

Supportnet / Forum / Anwendungen(Java,C++...)

primitive Datentypen vs. Array





Frage

N'abend, also folgendes Prob: Programmiersprache -> C++ Aufgabe -> Fakultäten berechnen. Ab einem Wert von 17 reichen die primitiven Datentypen nicht mehr aus, sehe ich das richtig? 1*2*3*4*5*...*17=ausserhalb des Bereiches von zB long integer. Soweit ich weiss ist dies doch schon der größte Datentyp?!? Ich habe im Internet was gefunden, wo es hieß: Arrays sind die nächste Stufe nach den primitiven Datentypen. Vorausgesetzt, dies ist richtig, wie soll ich z. B. eine Zahl 1000 vernünftig in ein Array bekommen um die Fakultät zu berechnen, denn der Code soll sich ja nicht endlos aufblähen. Realisiert wurde es (bis jetzt) mit einer while-Schleife: //Prozedur: fakult(int h) { int fak = 1; while (h != 1) { fak = fak * h; h = h - 1; } return (fak); } Danach wird der Wert "h" an "ergebnis" geliefert und via printf ausgegeben. Diese Verfahrensweise ist wie o.g. nur bis 16 ausführbar und geht dann in den Minusbereich, stellt also keine richtigen Ergebnisse mehr dar. Hat jemand eine Idee wie ich dies schlau anders (wenn überhaupt möglich) mit Arrays lösen kann. Gibt es evtl. eine viel einfachere Lösung? Danke Euch für die Mühe Gruß Olli PS: sollte das nicht verständlich sein, schreibe ich's gerne nochmal ;-)

Antwort 1 von belong

Hi,
die Erweiterung ist nur mit einem größeren Zahlbereich möglich, also Gleitkommazahlen. D.h. die Typen müssen geändert werden. Dann kann n! so groß werden wie es dieser DAtentyp erlaubt.
CA belong

Antwort 2 von IT-Olli

Toll, Danke!

Werde das gleich mal ausprobieren. Danke nochmal

Falls noch weitere Ideen auftauchen, *blubb*
wäre ich für jeden Hinweis dankbar,

schönen Abend noch!

Gruß

Olli

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: