1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Fakultät mit Struktur BigInteger erstellen

Dieses Thema im Forum "Support & Discussion" wurde erstellt von Amoss, 15. Mai 2018.

Schlagworte:
  1. Amoss

    Amoss New Member

    Registriert seit:
    15. Mai 2018
    Beiträge:
    1
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    Ich habe ein Programm geschrieben, dass die Fakultät berechnet. Bei längeren Zahlen geht dies nicht, da es in integer ausgeben soll. Nun gibt es zwar die Möglichkeit BigInteger stattdessen zu nutzen jedoch habe ich folgende Aufgabe bekommen:

    "Schreiben Sie zur Darstellung der ganzen Zahlen eine eigene Struktur BigInteger, die Zahlen beliebiger Stellenzahl darstellen kann. Berechnen Sie dann 1000! "

    Wie kann man dem Feld sagen, dass es das Ergebnis der Fakultät austeilen soll und ich verschiedene Einheiten packen soll, damit ich das Ergebnis der Fakultät ausgeben kann?
    1. using System;
    2. using System.Numerics;
    3. class Programm
    4. {
    5. static void Main()
    6. {​
    7. Console.Write("Fakultät von n: ");
    8. string input = Console.ReadLine();
    9. int eingabe = int.Parse(input);
    10. Console.WriteLine(fak(eingabe));
    11. Console.ReadKey();
    12. }
    13. public static BigInteger fak(int zahl)
    14. {
    15. if (zahl < 2)
    16. {
    17. return zahl;
    18. }
    19. return zahl * fak(zahl - 1);
    20. }
    21. }
     
    Zuletzt bearbeitet: 16. Mai 2018
  2. krusty

    krusty Moderator Mitarbeiter Moderator

    Registriert seit:
    1. Juli 2017
    Beiträge:
    63
    Zustimmungen:
    28
    Punkte für Erfolge:
    18
    Geschlecht:
    männlich
    Ort:
    Wadiya
    Hallo Amoss und herzlich willkommen in unserem Forum.

    In der Aufgabenstellung steht, dass du die Klasse/Struktur Biginteger selbst erstellen sollst.
    Du hast die Fakultät rekursiv berechnet, das ist sehr ineffizient. Löse das Problem mit einer schleife, dann vermeidest du einen stackoverflow.
    Wie man einen Biginteger implementiert weiß ich nicht auf Anhieb, werde mich nachher aber mal informieren.
    Liebe grüße Alex
     

Diese Seite empfehlen

Die Seite wird geladen...