# PBinfo #2826 – Duplicare1 – Rezolvare C++

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

## Enunț

Cerința
Subprogramul duplicare are doi parametri, în această ordine:


n, prin care primește un număr natural (n∈[1,104]);
d, prin care furnizează numărul obţinut prin duplicarea fiecărei cifre pare a lui n sau -1 dacă acesta nu are nicio cifră pară.

Scrieți definiția completă a subprogramului.

Exemplu
Dacă n=2380, după apel d=2238800.

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 &d) {
    d = 0;
    int p = 1;
    bool adv = false;
    while (n) {
        d = d + n % 10 * p, p = p * 10;
        if (n % 2 == 0)
            d = d + n % 10 * p, p = p * 10, adv = true;
        n = n / 10;
    } if (adv == false) d = -1;
}
```

## Resurse

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