Pewnie masz rację, ale powiedz… czy ja coś gdzieś w ogóle pisałem o tablicy charów?
@kuba1996 Zmieniłeś o wiele więcej niż ja wspomniałem.
Po pierwsze testuj na większych przykładach (np. 999 998
), bo na małych nie zauważysz różnicy. Na takich dużych szybko spostrzeżesz, że Twój poprzedni kod był znacznie szybszy od aktualnego.
Przypomnę co napisałem: “… bo przepisałem tę funkcję na zwykłe mnożenie pisemne, reszty nie ruszyłem”, a Ty wszystko zmieniłeś na wektory, nie wiem czy tam było źle, nie czytałem, ale z pewnością było lepiej niż teraz.
Tak więc przywróć poprzedni kod, następnie przejdź do metody product2Numbers
i zmień tylko jej kod, czyli żeby było jasne co ja zmieniłem:
#include <iostream>
#include <vector> //tylko to dodałem
#define SumOfDigits(x, y, z) x + y + z - 3 * '0'
//dotąd wszystko tak samo, nie zmieniłem jednej literki
string product2Numbers(string x, string y){
//wnętrze tej funkcji przeorałem jak polecił mariusz193
//ale nawet nagłówka funkcji nie zmieniłem
}
//dalej wszystko tak samo, nie zmieniłem jednej literki
Napisz wydajniej funkcję product2Numbers

Nie twierdzę, że to najlepszy sposób, po prostu sprawdziłem teorię mariusza i się okazało, że miał rację.