# PBinfo #946 – douabaze – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: andrei

## Enunț

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;
rezolvarea acestei probleme necesită utilizarea tablourilor sau a altor forme de memorare a unui număr variabil de valori.

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)

## Cod sursă C++

```cpp
#include <iostream>
using namespace std;
char carac[101];
int n = 0, temp, v[101];
int main() {
    cin >> carac;
    while (carac[n] >= '0' && carac[n] <= '9') {
        v[n] = carac[n] - '0';
        n++;
    } n--;
    if ((n + 1) % 2 == 1) {
        cout << 1;
        for (int i = 1; i < n; i = i + 2) { 
            temp = v[i] * 2 + v[i + 1];
            cout << temp;
        }
        ;
    } else for (int i = 0; i < n; i = i + 2)
        cout << v[i] * 2 + v[i + 1];
    return 0;
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/946)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/946/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-946/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
