fbpx

Problema #2805 – Duplicare – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Subprogramul duplicare are un singur parametru, n, prin care primește un număr natural (n∈[1,104)). 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.

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

S-ar putea sa iti placa