Cześć, napisałem taki algorytm który sumuje dwie dowolnie duże liczby naturalne w systemie dziesiątkowym:
string dodajtroj(string a, string b)
{
string wynik = "";
int pa = a.length()-1;
int pb = b.length()-1;
int p = 0;
while (pa >=0 || pb >=0)
{
int ca, cb, w;
if (pa >=0) ca = a[pa] - 48; else ca = 0;
if (pb >=0) cb = b[pb] - 48; else cb = 0;
w = ca + cb + p;
p = w / 10;
wynik = char(w%10 + 48) + wynik;
pa--; pb--;
}
if (p) wynik = char(p+48) + wynik;
return wynik;
}
Czy można w miarę prosty sposób przekształcić ten algorytm aby uważał liczby za napisane w systemie trójkowym i w takim też systemie je wypisywał?
Na przykład dla danych:
222 22121
211 12020
12 21111
2010 20122
1222 12211
Dawał wyniki:
100120
20001
21200
22202
21210
Zamiast:
22343
12231
21123
22132
13433
Pozdrawiam Paweł.