330
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
9se vor scrie cu litere mari.
Exemplu
Intrare
b 5
Ieșire
101
Explicație
Numărul 5 în baza doi este scris 101.
#include <bits/stdc++.h>
using namespace std;
int main()
{
long long int n;
char ch;
cin >> ch >> n;
if(ch == 'b')
{
int v[1001];
int p = 0;
while(n)
{
v[p] = n % 2;
p++;
n/=2;
}
for(int i = p - 1 ; i >= 0 ; --i)
cout << v[i];
}
else if(ch == 'o')
{
int v[1001];
int p = 0;
while(n)
{
v[p] = n % 8;
p++;
n/=8;
}
for(int i = p - 1 ; i >= 0 ; --i)
cout << v[i];
}
else
{
char v[1001];
int p = 0;
while(n)
{
if(n % 16 > 9)
{
int nr = n % 16 - 9;
v[p] = (char) (nr + 'A' - 1);
}
else
v[p] = (char) (n % 16 + '0');
p++;
n/=16;
}
for(int i = p - 1 ; i >= 0 ; --i)
cout << v[i];
}
return 0;
}
Comentarii