Multiplikation von großen Zahlen, ohne BigInt uä

Snaap

Mitglied
Aufgabenstellung:
Addition und Multiplikation von großen Zahlen, ohne BigInt uä. (-> Ausgabe als String)

Addition war relativ einfach zu Lösen, mit Multiplikation hab ich aber Probleme...

Mein Ansatz war so:
Zahlenkette wird als String eingegeben und dann in ein Array Verarbeitet:
"142" -> Array [0] = 2 [1] = 4 [2] = 1
"214" -> [0] = 4 [1] = 1 [2] = 2

und jetzt weiß ich nicht wie ich weitermachen soll (hab schon verschiedene Varianten ausprobiert, nicht läuft so wie ich möchte -.-)

ich müsste ja eig so rechnen:
c = 1;

X = [a] * ( + c)
c = c * 10
b + 1 bis fertig

a = a +1 und wieder mit b durch

->
(1*4) * 10^2+
(1*1) * 10^3+
(1*2) * 10^4+
(4*4) * 10^1+
(4*1) * 10^2+
(4*2) * 10^3+
(2*4) * 10^0+
(2*1) * 10^1+
(2*2) * 10^2

aber durch dieses *10 kommen wieder zu große zahlen raus -> keine Lösung der Aufgabenstellung.

Ich müsste also irgendwie die Felder in Strings umwandeln und dann Nuller ranhängen? Blick grad echt ned wie des gehen soll -.-

Suche hier keine Lösung, sondern nur einen Ansatz (gerne mit Beispiel :D) wie ich das Problem lösen kann.

Vielen Dank

MfG
 
Zuletzt bearbeitet:
Ich möchte nicht zu sehr deinen Ehrgeiz zur eigenen Lösung wegnehmen.

Tipp: Viele Kleine können etwas Großes bewirken.

Wenn du nicht weiter kommst, frag hier ruhig.

Mit freundlichen Grüßen
DoS
 

Ruzmanz

Top Contributor
Wozu brauchst du die 10er-Stellen, wenn du das als String ausgeben möchtest?

i[0] = 2:
i[1] = 3;

j[0] = 5;
j[1] = 4


ergebnis = i[0] * j[0] = 10; = > Als letzten Wert muss eine 0 hin. (Evtl. hilft dir Modulo weiter.)
ergebnis2 = i[1] * j[1] + (int)(ergebnis/10);
String zahl= neuesZiffer + "" + zahl;
 

Snaap

Mitglied
Versteh ich erlich gesagt überhaupt nicht /:
deim nachrechnen bekomm ich nur für die letze stelle das richtige ergebniss.. ich würd sagen ich mach irgenwas falsch ;D

MfG
 

Ruzmanz

Top Contributor
Hm, dann komme ich einfach mal zu deinem Ansatz zurück :)

(1*4) * 10^2+
(1*1) * 10^3+
(1*2) * 10^4+
(4*4) * 10^1+
(4*1) * 10^2+
(4*2) * 10^3+
(2*4) * 10^0+
(2*1) * 10^1+
(2*2) * 10^2

Du teilst die einzelnen große Rechnung in Teilbereiche ein (Kleiner Tipp, fange von hinten an):
142 * 214 =
Code:
 2 * 214
+4 * 214
+1 * 214

Die Teilbereiche müssen nochmal untetteilt werden:

Code:
2 * 4
2 * 1
2 * 2

Code:
4 * 4
4 * 1
4 * 2

Code:
1 * 4
1 * 1
1 * 2

Und jetzt hast du eignetlich schon das gesamte Problem gelöst:

2 * 4
2 * 1
2 * 2

Ist eigentlich das selbe wie:
String s1 = 2*4 + "";
String s2 = 2*1 + "0";
String s3 = 2*2 + "00"

Wenn du nun überlegst, dann erkennst du eine for Schleife bei der jeden Durchlauf eine "0" hinzugefügt wird. Die Teilergebnisse musst du dann selbstversändlich irgendwie addieren (s1 + s2 +s3):

Addition war relativ einfach zu Lösen

Genau, du addierst mit deiner anderen Methode. Ich hoffe mal du hast es verstanden ;-)
 

Snaap

Mitglied
Vielen Dank :)

Ich versteh den Ansatz und er scheint auch um einiges Sinnvoller zu sein als das was ich bisher gerechnet hab, aber das Probleme wäre dass ich eine variable anzahl von Strings erzeugen müsste.. geht das? wenn ja wie?


Find die Aufgabe so langsam viel zu schwer für ne 10. Klasse -.-
MfG
 

Ruzmanz

Top Contributor
Mit einer ArrayList könntest du beliebig viele Strings erstellen, aber normalerweise geht das bei so einer Aufgabe auch mit einer Schleife. Ich habe mal schnell eine Lösung zusammengetippt, wie das eigentlich aussehen sollte.
(Keine Garantie, dass es funktioniert, aber das Prinzip kannst du übernhemen.)

Java:
public String gibErgebnis() {
    // Umwandlung usw.
    // i = ...
    // j = ...
    multipliziere(i,j);
}

/**
* Für Multiplikationen, wie 23456245675 * 4344365334 
*/
public String multipliziere(int[] multiplikator, int[] multiplikand) {
    String ergebnis = "0";
    String nullen = "";

    for(i= 0; i< multiplikand.length; i++) {
        ergebnis = addieren(ergebnis, multipliziere(multiplikator, multiplikand[i]) + nullen);
        nullen += "0";
    }

    System.out.println(ergebnis);
    return ergebnis;
}

/**
* Für Multiplikationen, wie 23456245675 * 4
*/
public String multipliziere(int[] multiplikator, int multiplikand) {
    String ergebnis = "0";
    String nullen = "";

    for(int i = 0; i < multiplikator.length; i++) {
        ergebnis = addieren(ergebnis, multiplikator[i] * multiplikand + nullen);
        nullen += "0";
    }

    System.out.println(ergebnis);
    return ergebnis;
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Variablen Negatives Ergebnis bei Multiplikation von großen Zahlen Java Basics - Anfänger-Themen 2
L Switch-Case Multiplikation wird nicht ausgegeben Java Basics - Anfänger-Themen 1
padde479 Array Multiplikation der ersten n Zahlen Java Basics - Anfänger-Themen 7
S Multiplikation von zwei Labels Java Basics - Anfänger-Themen 7
F Matrix Multiplikation Java Basics - Anfänger-Themen 3
G Java Bruchrechner Addition, Multiplikation... Java Basics - Anfänger-Themen 12
Z Matrix Klasse mit Mehrdimensionalen Array (Addition, Multiplikation, to String) Java Basics - Anfänger-Themen 57
O Erstes Programm: Matrizen Multiplikation Java Basics - Anfänger-Themen 10
H Variablen Multiplikation einer inkrementierten Variablen Java Basics - Anfänger-Themen 5
D Methoden Matrix Multiplikation Java Basics - Anfänger-Themen 27
J Funktionsaufrufe Multiplikation von Arrays Java Basics - Anfänger-Themen 3
Joker4632 Klassen BigDecimal Multiplikation liefert nicht erwarteten Wert Java Basics - Anfänger-Themen 6
TomatenBrot447 Adapter für eine optimierte Multiplikation Java Basics - Anfänger-Themen 5
U Ist diese Methode zur Matrix Vektor Multiplikation korrekt ? Java Basics - Anfänger-Themen 5
K Multiplikation zweier Matrizen Java Basics - Anfänger-Themen 23
R Matrix-Vektor-Multiplikation Java Basics - Anfänger-Themen 13
K Seltsames Ergebnis in Netbeans bei einfacher Multiplikation Java Basics - Anfänger-Themen 5
T Operatoren Multiplikation nur mit Addition, Subtraktion und Vergleich Java Basics - Anfänger-Themen 29
S Multiplikation durch Addition, Subtraktion und Vergleich von Zahlen Java Basics - Anfänger-Themen 14
V Vor jeder Multiplikation den linken Multiplikator abrunden Java Basics - Anfänger-Themen 4
M Matrix Matrix Multiplikation Java Basics - Anfänger-Themen 6
W Multiplikation mit rekursivem Aufruf Java Basics - Anfänger-Themen 17
F.S.WhiTeY Multiplikation nach der Schulmethode Java Basics - Anfänger-Themen 6
K Matrizen Multiplikation Java Basics - Anfänger-Themen 3
B Multiplikation bei Generics Java Basics - Anfänger-Themen 9
G Multiplikation falsches Ergebnis Java Basics - Anfänger-Themen 5
K double Multiplikation Java Basics - Anfänger-Themen 2
K einfache Multiplikation Java Basics - Anfänger-Themen 6
2 Variablenüberlauf bei Addition, Multiplikation Java Basics - Anfänger-Themen 2
O Überlauf durch Multiplikation Java Basics - Anfänger-Themen 7
ixChronos Letzten 4 Ziffern einer großen Zahl ausgeben Java Basics - Anfänger-Themen 3
F Java Programm, das kleine Buchstaben in einem String zählen soll und bei großen Buchstaben oder Sonderzeichen abbrechen soll. Java Basics - Anfänger-Themen 5
H Methoden in großen Klassen gruppieren oder auslagern? Java Basics - Anfänger-Themen 10
kilopack15 Rechnen mit großen Zahlen Java Basics - Anfänger-Themen 6
C Verarbeitung von sehr großen Dateien Java Basics - Anfänger-Themen 52
J Umgang mit großen Datenmengen Java Basics - Anfänger-Themen 9
J Effizienter Umgang mit großen Dateien Java Basics - Anfänger-Themen 7
C Problem mit Lesen und Speichern und Verarbeiten von großen Text Dateien Java Basics - Anfänger-Themen 5
MilchToast Teilstrings aus unbekannt großen Textdateien extrahieren. Java Basics - Anfänger-Themen 5
I Kann nicht compilieren warum? Bei großen Quellcode. Java Basics - Anfänger-Themen 8
G ArrayList bei großen Zahlen langsam? Java Basics - Anfänger-Themen 10
F Teilen einer großen Grafik Java Basics - Anfänger-Themen 2
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
P Aus Text Datei nur Zahlen übernehmen Java Basics - Anfänger-Themen 13
K Warum werden immer noch doppelte Zahlen ausgegeben ? Java Basics - Anfänger-Themen 13
M negative Zahlen bei Intervallen Java Basics - Anfänger-Themen 10
XWing Doppelte Zahlen im Array Java Basics - Anfänger-Themen 8
M 3 Zahlen miteinander vergleichen Java Basics - Anfänger-Themen 18
J Taschenrechner mit mehr als 2 Zahlen. Java Basics - Anfänger-Themen 18
O Zahlen aus einem char-array per char + Zeichen addieren Java Basics - Anfänger-Themen 2
B Alle Zahlen finden, die 3 bestimmte Ziffern enthalten? Java Basics - Anfänger-Themen 9
K Java gleicher Wert von Zahlen? Java Basics - Anfänger-Themen 5
I aus 2 random zahlen soll nur die ungerade summe der beiden genommen werden. Java Basics - Anfänger-Themen 13
J Operatoren Zahlen addieren Java Basics - Anfänger-Themen 13
B Threads Counter mit ungeraden Zahlen Java Basics - Anfänger-Themen 32
JavaBeginner22 Java 2 Zufalls zahlen generieren. Java Basics - Anfänger-Themen 11
X Wie kann man ein Regex erstellen, die 8-Bit-Binär-Zahlen darstellen. Java Basics - Anfänger-Themen 1
M Stream mit den ersten n natürlichen Zahlen Java Basics - Anfänger-Themen 4
D Größtes Palindrom Produkt aus zwei dreistelligen Zahlen Java Basics - Anfänger-Themen 60
T Methode, die prüft ob in einem Int-Array maximal 2 Zahlen enthalten sind, die größer als ihr Vorgänger sind Java Basics - Anfänger-Themen 5
sserio Befreundete Zahlen Java Basics - Anfänger-Themen 7
AhmadSlack Verzweigungen zahlen multiplizieren Java Basics - Anfänger-Themen 4
U Lotto-Zahlen App Java Basics - Anfänger-Themen 34
berserkerdq2 Wie würde man einen regulären Ausdruck in Java schreiben, der prüft, dass zwei bestimtme Zahlen nicht nebeneinadner sind? Java Basics - Anfänger-Themen 3
H Arrays: Größten Zahlen Unterschied herausfinden Java Basics - Anfänger-Themen 20
bluetrix Programmieren eines Bots für Zahlen-Brettspiel Java Basics - Anfänger-Themen 9
J Zahlen bis zu einem bestimmten Grenzwert ausgeben Java Basics - Anfänger-Themen 11
00111010101 Objektorientiertes Programmieren mit Vererbung (Zahlen in Array verschwinden) Java Basics - Anfänger-Themen 3
P Zweidimensionales Array als Tabelle mit befüllten Zahlen Java Basics - Anfänger-Themen 10
W Wie ziehe ich von einer bestimmten Zahl, Zahlen ab, bis mein Ergebnis null beträgt? Java Basics - Anfänger-Themen 10
emx-zee Erste Schritte NullPointerException, Array mit zufälligen Zahlen füllen Java Basics - Anfänger-Themen 2
W Bestimmte Zahlen bei Math.random ausschließen? Java Basics - Anfänger-Themen 31
K Erste Schritte "Taschenrechner" zeigt keine Komma Zahlen an. Java Basics - Anfänger-Themen 8
P Drei Zahlen eines Würfelspiels auswerten Java Basics - Anfänger-Themen 7
H Häufigkeit von Zahlen ermitteln Java Basics - Anfänger-Themen 23
sashady Zahlen rekursiv zerlegen und Ziffern addieren Java Basics - Anfänger-Themen 38
H Zahlen kürzen Java Basics - Anfänger-Themen 2
ansystin Teilerfremde Zahlen ausgeben + Zahlenausgabe speichern Java Basics - Anfänger-Themen 3
B Häufigkeit einzelner Zahlen in einem Array Java Basics - Anfänger-Themen 6
nevel Programm für die Summer der Zahlen 1- 1ß Java Basics - Anfänger-Themen 12
jhCDtGVjcZGcfzug Fibonacci Zahlen rekursiv und iterativ Java Basics - Anfänger-Themen 21
H Eingegebene Zahlen mit Array ausgeben Java Basics - Anfänger-Themen 18
I 12 Spalten von jeweils 30 Zahlen in Konsole ausgeben Java Basics - Anfänger-Themen 6
R Array mit Unter- und Obergrenze ganze Zahlen dazwischen erscheinen nicht Java Basics - Anfänger-Themen 1
OZAN86 For Schleife von 1-50 die Zahlen werden durch ein Komma getrennt Java Basics - Anfänger-Themen 10
Bademeister007 Operatoren Alle Zahlen einer ArrayList die durch 5 teilbar ist Java Basics - Anfänger-Themen 2
mhmt_03 dafür sorgen, dass im JTextfield nur zahlen eingebbar sind Java Basics - Anfänger-Themen 9
Ianatrix Zahlen von a bis b berechnen Java Basics - Anfänger-Themen 7
P Wie kann ich die Zahlen dieses Arrays dividieren? Java Basics - Anfänger-Themen 2
P Nutzer entscheiden lassen, wie viele Zahlen dieser in ein Array eingeben möchte. Java Basics - Anfänger-Themen 6
T Bestimmte Zahlen ausgeben mit einer whilfe Schleife Java Basics - Anfänger-Themen 21
H Alle Geraden zahlen bis 10 ausgeben Java Basics - Anfänger-Themen 11
java3690 Liste mit zufälligen zahlen füllen Java Basics - Anfänger-Themen 27
macle Rekursive String Methode, Gerade Zahlen rausfiltern Java Basics - Anfänger-Themen 10
M Regex nur Zahlen und Punkt zulassen, Keine Eingabe(Leeres TextFeld) nicht zulassen Java Basics - Anfänger-Themen 6
L Mit Zahlen im String rechnen Java Basics - Anfänger-Themen 19
G Java eingelesene Zahlen Java Basics - Anfänger-Themen 2
D Zahlen werden falsch gekürzt :? Java Basics - Anfänger-Themen 27
H Ungerade Zahlen ausgeben von 1 bis 1000 Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben