Răspuns :
Răspuns:
#include <iostream>
using namespace std;
int main ()
{
int x, b1, b2, copie_x, nrcifre=0, i, intermediar=0, ogl=0;
cin >> x >> b1 >> b2;
copie_x = x;
while (copie_x>0)
{
nrcifre++;
copie_x /= 10;
}
while (x>0)
{
ogl = ogl*10 + x%10;
x /= 10;
}
for (i=1; i<=nrcifre; i++)
{
intermediar = intermediar*b1 + ogl%10;
ogl /= 10;
}
int y=0, p=1;
while (intermediar > 0)
{
y = y+(intermediar%b2)*p;
intermediar /= b2;
p *= 10;
}
cout << y;
return 0;
}
Explicație:
Am folosit algoritmul din baza b1 in 10, apoi din 10 in b2. Din x in baza b1 obtinem intermediar in baza 10, iar din intermediar in bza 10 obtinem y in baza b2.
Vă mulțumim că ați ales să vizitați platforma noastră dedicată Informatică. Sperăm că ați găsit conținutul oferit util și inspirațional. Dacă aveți întrebări suplimentare sau doriți asistență, vă încurajăm să ne contactați. Ne-ar face plăcere să reveniți și nu uitați să ne adăugați în lista dumneavoastră de favorite!