Cześć
Napisałem funkcję, która ma za zadanie obliczyć sumę dwóch dużych liczb (stringów). Dla niektórych testów program się wysypuje i otrzymuje błąd "string subscript out of range". Gdzie leży błąd i co go powoduje ?
string add(string a, string b) {
string wynik, temp;
int da = a.size(), db = b.size(),w, przes=0;
int mn = min(da, db), mx = max(da, db);
for (int i = mx - 1; i > -1; i--) {
if (da >= db) {
if (mn--) {
w = a[i] + b[mn] - 96 + przes;
}
else {
w = a[i] - 48 + przes;
}
przes = w / 10;
temp = w % 10 + 48;
wynik = temp + wynik;
}
else {
if (mn--) {
w = a[mn] + b[i] - 96 + przes;
}
else {
w = b[i] - 48 + przes;
}
przes = w / 10;
temp = w % 10 + 48;
wynik = temp + wynik;
}
}
if (przes) {
temp = przes + 48;
wynik = temp + wynik;
}
return wynik;
}