Laborator 1

Baze de numeratie

Program suplimentar!

Urmatorul program transforma orice numar dintr-o baza mai mica sau egala cu 10 in alta baza mai mica sau egala cu 10:

#include <iostream>

using namespace std;

int main()

{

cout << "Transformare numerelor din baza A in baza B" << endl;

long gresit,n,c,b,p,nb,y,na;

gresit=0;

while (gresit==0)

{

gresit=1;

cout<<"numarul=";cin>>nb;

cout<<"baza=";cin>>b;

y=nb;

c=0;

while(y!=0&&c<b)

{c=y%10;

if(c>=b)

{

cout<<"Imposibil"<<endl;

gresit=0;

}

y=y/10;

}

}

cout<<"baza in care vreti sa transformati: ";cin>>na;

p=1;n=0;

while(nb!=0)

{c=nb%na;

c=c*p;

n=n+c;

p=p*b;

nb=nb/na;

}

cout<<"Numarul in baza "<<na<<" este "<<n<<endl;

return 0;

}