aKom
Grünschnabel
Ich bin grade dabei eigene Funktionen zur Berechnung extrem großer Zahlen zu schreiben.
Die Funktion für die Addition zweier großer Zahlen funktioniert einwandfrei. Probleme habe ich allerdings bei der Multiplikation.
Hier erstmal der Code:
Wir als erster Wert eine ein- oder zweistellige Zahl angegeben, funktioniert das Ganze ohne Probleme. Wird jedoch eine dreistellige Zahl angegeben bekomme ich einen "Debug Assertion Failed" Fehler.
Scheinbar tritt das Problem nach dem zweiten Durchlauf der Schleife bei
auf. Sicher bin ich allerdings nicht.
Hat jemand einen Tipp, wo das Problem liegen könnte?
Danke und Gruß,
Torsten
Die Funktion für die Addition zweier großer Zahlen funktioniert einwandfrei. Probleme habe ich allerdings bei der Multiplikation.
Hier erstmal der Code:
C++:
string multi(string value, string str) {
int iwertv, iwerts;
string wertv, werts, temp, temp2;
int zaehler, max;
int grvalue = value.size(); // value: 1. eingegebener wert
int grstr = str.size(); // str: 2. eingegebener wert
int over = 0;
reverse(value.begin(), value.end());
reverse(str.begin(), str.end());
for(int i=0;i<grvalue;++i) {
int j=0;
wertv = value[i];
werts = str[j];
iwertv = string2integer(wertv);
iwerts = string2integer(werts);
iwertv *= iwerts;
iwertv += over;
over = 0;
if(iwertv>9) {
over = iwertv / 10;
iwertv %= 10;
}
temp += int2string(iwertv);
}
if(over != 0) temp += int2string(over);
over = 0;
reverse(temp.begin(), temp.end());
return temp;
}
Wir als erster Wert eine ein- oder zweistellige Zahl angegeben, funktioniert das Ganze ohne Probleme. Wird jedoch eine dreistellige Zahl angegeben bekomme ich einen "Debug Assertion Failed" Fehler.
Scheinbar tritt das Problem nach dem zweiten Durchlauf der Schleife bei
C++:
if(over != 0) temp += int2string(over);
Hat jemand einen Tipp, wo das Problem liegen könnte?
Danke und Gruß,
Torsten