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 vizitat site-ul nostru dedicat Informatică. Sperăm că informațiile oferite v-au fost de ajutor. Dacă aveți întrebări sau nevoie de asistență suplimentară, nu ezitați să ne contactați. Vă așteptăm cu drag data viitoare și nu uitați să ne adăugați la favorite!