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 < {2}^{64}\);
- 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
.
Cum e corect?
cout < "As la info";
cout << "As la info";
cout >> "As la info";
Felicitări! Poți mai mult?
Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.
Greșit, dar nu-i bai!
Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.
Rezolvare
Iată rezolvarea de 100 de puncte pentru problema DecimalConverter:
#include <iostream>
using ull = unsigned long long;
char c;
ull n;
void decToBin(ull n)
{
bool BinNum[64];
int i=0;
while(n>0)
{
BinNum[i]=n%2;
n=n/2;
i++;
}
for(int j=i-1; j>=0; j--) std::cout<<BinNum[j];
}
void decToOct(ull n)
{
int OctNum[100];
int i=0;
while(n!=0)
{
OctNum[i]=n%8;
n/=8;
i++;
}
for(int j=i-1; j>=0; j--) std::cout<<OctNum[j];
}
void decToHex(ull n)
{
char HexNum[100];
int i=0, temp=0;
while(n!=0)
{
temp=0;
temp=n%16;
if(temp<10) HexNum[i]=temp+48;
else HexNum[i]=temp+55;
i++;
n/=16;
}
for(int j=i-1; j>=0; j--) std::cout<<HexNum[j];
}
int main()
{
std::cin>>c>>n;
switch(c)
{
case 'b':
decToBin(n);
break;
case 'o':
decToOct(n);
break;
case 'h':
decToHex(n);
break;
}
return 0;
}
Atenție
Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa .
Rezolvarea problemei #3017 DecimalConverter
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #3017 DecimalConverter de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.
Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!