# PBinfo #2805 – Duplicare – Rezolvare C++

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

## Enunț

Cerința
Subprogramul duplicare are un singur parametru, n, prin care primește un număr natural (n∈[1, 10000]). Subprogramul furnizează, prin același parametru, numărul obținut din n prin inserarea, după fiecare cifră pară din scrierea lui, a unei cifre egale cu jumătate din aceasta.

Scrieți definiția completă a subprogramului.

Exemplu
Dacă n=2380 după apel, n=2138400, iar dacă n=35 după apel, n=35.

Important
Soluția propusă va conține definiția subprogramului cerut. Prezența în soluție a altor instrucțiuni poate duce erori de compilare sau de execuție care vor avea ca efect depunctarea soluției.

## Cod sursă C++

```cpp
void duplicare(int &n) {
    int copie = n, p = 1;
    n = 0;
    while (copie) {
        if (copie % 2 == 0)
            n = n + copie % 10 / 2 * p, p = p * 10;
        n = n + copie % 10 * p, p = p * 10;
        copie = copie / 10;
    }
}
```

## Resurse

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