A idéia básica:
Se conclusão, pode efectivamente reduzir o comprimento;
Pontos principais:
não;
#include <iostream> #include <vector> #include <string> #include <sstream> #include <algorithm> using namespace std; vector <string> carga (string s) { int index; corda b; vector <string> vec; ss stringstream (s); enquanto (getline (ss, b,) '') { vec.push_back (b); } Retornar vec; } Cadeia suplemento (cadeia a, cadeia b, int & ca) { int max = -1; corda rn = ""; if (a.size ()> b.size ()) { max = b.size (); rn = a.substr (máx, a.size () - max); } Else if (a.size () <b.size ()) { max = a.size (); max = a.size (); } Int transportar = 0; cordas res = ""; para (int i = max - 1; i> = 0; i--) { int temp = (a [i] - '0') + (b [i] - '0') + transporte; res = CHAR ( '0' + temp% 10) + res; carregue = temp / 10; } Ca = de transporte; res + = rn; while (! res.size () = 0 && res [res.size () - 1] == '0') res.pop_back (); voltar res; } Add_in cadeia (cadeia a, cadeia b, int cn) { reversa (a.begin (), a.end ()); (b.begin (), b.end ()) inverter; int transportar = CN; cordas res = ""; para (int i = 0; i <a.size () && i <b.size (); i ++) { res = res + char ( '0' + Temp% 10); carregue = temp / 10; } If (res.size () <a.size ()) { para (int i = res.size (); i <a.size (); i ++) { if (reporte == 0) res + = uma [ Eu]; else { int temp = (a [i] - '0') + transporte; res + = char ( '0' + temp% 10); carregue = temp / 10; } } If (carry = 0!) Res + = '1'; } Else if (res.size () <b.size ()) { para (int i = res.size (); i <b.size (); i ++) { if (reporte == 0) res + = b [Eu]; else { int temp = (b [i] - '0') + transporte; res + = char ( '0' + temp% 10); carregue = temp / 10; if (carry = 0!) } Else { if (carry = 0!) Res + = '1'; } Reversa (res.begin (), res.end ()); voltar res; } Int main () { string de S1, S2; while (cin >> s1 >> s2) { vector <string> SS1 = carga (S1); vector <string> SS2 = carga (s2); int transportar = 0; res de cadeia = suplemento (SS1 [1], SS2 [1], de transporte); cadeia res_in = add_in (SS1 [0], SS2 [0], de transporte); cout << res_in << "" << res << endl; } }