Entwickler-Ecke
C# - Die Sprache - berechen Fakultäten natürlicher Zahlen
melanie05 - Do 15.10.09 16:38
Titel: berechen Fakultäten natürlicher Zahlen
Erstellen Sie ein C#-Konsol-Programm zur Berechnung der Fakultäten natürlicher Zahlen mit
maximal 10000 Dezimalstellen. Verwenden Sie dazu einen int-Vektor der Länge 2000, der die
Dezimalstellen aufnimmt. Bei der Gefahr des Überlaufs eines Vektorelements bilden Sie einen
Übertrag, der in das nachfolgende Element eingetragen wird.
Zur Ausgabe sind die Vektorelemente aufzubereiten und unter Ausnutzung der vollen Bildschirmbreite
in der richtigen Reihenfolge auszugeben.
ich habe bis jetzt das prenzip bzw den Algoritmus nicht kapiert bin Anfänger .
bin sehr dankbar für jede hilffe
Nemag - Do 15.10.09 17:02
Hallo
also Int32 hat einen Wertebereich von -2.147.483.648 bis 2.147.483.647. wie du leicht siehst sind das deutlich weniger als 100000 Stellen um genau zu sein nur 10.
Du sollst quasi ein Array von Integerzahlen erstellen [int1,int2,in3, .... int1000].
Wenn es nun in einem Integerwert einen Überlauf gibt also n! * (n+1) > 214483647 musst du die "übergelaufene Stelle" in mit deinem nächsten Element in dein Array Packen.
Mal als Beispiel wenn Int nur einen Wertebereich von 0 bis 9 hätte mit Array von 5 Integern:
Fac(1) = [1,0,0,0,0]
Fac(2) = [2,0,0,0,0]
Fac(3) = [6,0,0,0,0]
Hier kommt jetzt der Überlauf -> 24
Fac(4) = [4,2,0,0,0]
Jetzt musst du die Berechnung die du im normalen Schulaltag mit einem Zehnersystem durchführst quasi "nur" auf ein System mit Basis 2.147.483.648 überführen ;-)
PS.: Anstatt ein Integerarray int[], ist natürlich List<int> deutlich sbesser aber deine Aufgabe heißt Integerarray mit 2000 also:
int[] intArray = new int[2000];
(hierbei wirst du dir vielleicht in einer Variablen noch speichern müssen welches Intergerwert der letzte gefüllte war, für die nächste Berechnung.)
melanie05 - Do 15.10.09 22:06
hallo
ich werde mich freuen auf mehrere antworten ,bzw mehr cod !
bitte um Hilfe.
melanie05 - Do 15.10.09 22:24
melanie05 hat folgendes geschrieben : |
Erstellen Sie ein C#-Konsol-Programm zur Berechnung der Fakultäten natürlicher Zahlen mit
maximal 10000 Dezimalstellen. Verwenden Sie dazu einen int-Vektor der Länge 2000, der die
Dezimalstellen aufnimmt. Bei der Gefahr des Überlaufs eines Vektorelements bilden Sie einen
Übertrag, der in das nachfolgende Element eingetragen wird.
Zur Ausgabe sind die Vektorelemente aufzubereiten und unter Ausnutzung der vollen Bildschirmbreite
in der richtigen Reihenfolge auszugeben.
ich habe bis jetzt das prenzip bzw den Algoritmus nicht kapiert bin Anfänger .
bin sehr dankbar für jede hilffe |
Nemag hat folgendes geschrieben : |
Hallo
also Int32 hat einen Wertebereich von -2.147.483.648 bis 2.147.483.647. wie du leicht siehst sind das deutlich weniger als 100000 Stellen um genau zu sein nur 10.
Du sollst quasi ein Array von Integerzahlen erstellen [int1,int2,in3, .... int1000].
Wenn es nun in einem Integerwert einen Überlauf gibt also n! * (n+1) > 214483647 musst du die "übergelaufene Stelle" in mit deinem nächsten Element in dein Array Packen.
Mal als Beispiel wenn Int nur einen Wertebereich von 0 bis 9 hätte mit Array von 5 Integern:
Fac(1) = [1,0,0,0,0]
Fac(2) = [2,0,0,0,0]
Fac(3) = [6,0,0,0,0]
Hier kommt jetzt der Überlauf -> 24
Fac(4) = [4,2,0,0,0]
Jetzt musst du die Berechnung die du im normalen Schulaltag mit einem Zehnersystem durchführst quasi "nur" auf ein System mit Basis 2.147.483.648 überführen ;-)
PS.: Anstatt ein Integerarray int[], ist natürlich List<int> deutlich sbesser aber deine Aufgabe heißt Integerarray mit 2000 also:
int[] intArray = new int[2000];
(hierbei wirst du dir vielleicht in einer Variablen noch speichern müssen welches Intergerwert der letzte gefüllte war, für die nächste Berechnung.) |
melanie05 hat folgendes geschrieben : |
hallo
danke nemag.
ich werde mich freuen auf mehrere antworten ,bzw mehr cod !
wie wird der rest im c# code berechnet .
bitte um Hilfe. |
Nemag - Fr 16.10.09 10:07
Hallo
wie du an diversen Thread hier im Forum siehst, sind wir nicht da um deine Hausaufgaben zu machen. Aber wir helfen dir gerne bei konkreten Problemen.
Hier mal eine Buchempfehlung
http://openbook.galileocomputing.de/visual_csharp/ damit du dich mit der Programmierung mit C# vertraut machen kannst.
Du kannst ja erstmal mit kleinen Sachen anfangen und dann an schwierigen Stellen nachfragen.
Programmier zum Beispiel erstmal die Fakultät mit einem Integer (inkl. Eingabe der Zahl -> ReadLine()) und darauf bauen wir dann auf.
MfG
Ps.: Deine letzte Antwort ist glaub ich kontraproduktiv zum Lösen deiner Aufgabe ;-)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!