#3017 DecimalConverter
Cerința
Se dă n un număr natural și un caracter c, care poate fi b, o sau h. Transformați numărul în baza dată de c, astfel:
c Baza
b Bin
o Oct
h Hex
Date de intrare
Programul citește de la tastatură numărul caracterul c, iar apoi numărul n.
Date de ieșire
Programul va afișa pe ecran valoarea cerută.
Restricții și precizări
1≤n<264;
Cifrele cu valori mai mari decât 9 se vor scrie cu litere mari.
Exemplu
Intrare
b
5
Ieșire
101
Explicație
Numărul 5 în baza doi este scris 101.
Indicații de rezolvare
Pentru reprezentarea numerelor se vor folosi vectori.
Răspunsuri la întrebare
Răspuns:
#include <iostream>
using namespace std;
long long k,n,i,r[101];
char c;
int main()
{
cin>>c;cin.get();cin>>n;
if(c=='h'){
k=0;
while(n!=0)
{
k++;
r[k]=n%16;
n=n/16;
}
for(i=k;i>=1;i--)
if(r[i]<10)
cout<<r[i];
else {
if(r[i]==10)cout<<'A';
if(r[i]==11)cout<<'B';
if(r[i]==12)cout<<'C';
if(r[i]==13)cout<<'D';
if(r[i]==14)cout<<'E';
if(r[i]==15)cout<<'F';
}
}else
if(c=='o'){
k=0;
while(n!=0)
{
k++;
r[k]=n%8;
n=n/8;
}
for(i=k;i>=1;i--)
if(r[i]<10)
cout<<r[i];
}
else
if(c=='b'){
k=0;
while(n!=0)
{
k++;
r[k]=n%2;
n=n/2;
}
for(i=k;i>=1;i--)
if(r[i]<10)
cout<<r[i];
}
}
Explicație: