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
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
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

