fbpx

Problema #946 – douabaze – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Se dă un număr n scris în baza 2. Să se afișeze valoarea acestuia în baza 4.

Date de intrare

Programul citește de la tastatură scrierea în baza 2 a numărului n.

Date de ieșire

Programul va afișa pe ecran scrierea în baza 4 a numărului n.

Restricții și precizări

  • n are cel mult 100 de cifre în baza 2

Exemplu

Intrare

100011

Ieșire

203

Explicație

100011(2) este scrierea binară a numărului 35(10) . Numărul 35 trecut în baza 4 are scrierea 203(4)

#include<iostream>
#include<string>
using namespace std;

string n;

void modf(int v)
{
    for(int i=v; i<n.length(); i+=2) {
        if(n[i] == '0' && n[i+1] == '0') cout << 0;
        else if(n[i] == '0' && n[i+1] == '1') cout << 1;
        else if(n[i] == '1' && n[i+1] == '0') cout << 2;
        else cout << 3;
    }
}

int main()
{
    cin >> n;
    if(n.length() & 1) { cout << 1; modf(1); }
    else modf(0);

    return 0;
}
Comentarii

S-ar putea sa iti placa