Informatică, întrebare adresată de igugleep8the3, 8 ani în urmă

#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 de pmarian98
1

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:

Alte întrebări interesante