fbpx

Problema #2826 – Duplicare1 – Rezolvari PBInfo

de Mihai-Alexandru

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.

void duplicare(int n , int &d)
{
    int a[20] , p = 1;
    int cn = n;
    while(n)
    {
        a[p]=n%10;
        n/=10;
        p++;
    }
    p--;
    d=0;
    for(int i = p ; i >= 1 ; --i)
    {
        if(a[i]%2==0)
            d = d * 10 + a[i] , d = d * 10 + a[i];
        else
            d = d * 10 + a[i];
    }
    if(d == cn)
        d=-1;
}
Comentarii

S-ar putea sa iti placa