Multipliziert zwei lange lange Ganzzahlen C
Arbeite ich an einem Programm in C als ein Teil der Hausaufgaben, in dem ich das Produkt erhalten Sie zwei lange Zahl, die als Zeichenkette. eg: 123456789021 und 132456789098. Da Sie als string, ich Sie konvertiert long long int für die Multiplikation. Aber das resultierende Produkt wird sehr groß sein(größer als long long int, die ich denke). Kann bitte jemand mir empfehlen eine Methode zur Durchführung dieser Multiplikation?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist ein Ansatz: Überlegen Sie, wie würden Sie multiplizieren Sie diese Zahl per hand auf Papier. Implementieren Sie diese Methode in C. Sie haben zu entdecken:
0 <= d < 10
in der Regel große Integer-zahlen dargestellt als byte-arrays. Sie können sich bei Microsoft die BigInteger-Implementierung der DLR. Ich denke, Sie haben sich entwickelten algorithmen von Knuth
Überprüfen Sie diese BigInteger Bibliothek und ein sehr basic-Beispielcode von der Welt der Sieben.
Wenn Sie Interesse an einigen meiner Wohnung gekocht-codes in C (nur Multiplikation) :
Dies funktioniert in einigen der früheren Programmierung Wettbewerben ich teilgenommen hatte ;), Aber wenn Sie sind auf der Suche nach noch schnelleren Algorithmus zur Matrixmultiplikation, die Sie Umsetzen können Karatsuba-Algorithmus,ich persönlich benutze diese jetzt in Echtzeit bestreiten.
Hey Mann,check das aus,ich Schloss es gestern am Tag als Teil meiner Hausaufgaben:
Können Sie eine Bibliothek für große integer-arithmetik, Wikipedia hat eine Liste hier.
Ein anderer Ansatz wäre, multiplizieren Sie die zahlen als float/double und stip aus der Dezimalstellen bei der Anzeige der Ergebnisse.