fbpx

Problema #2823 – CifreImpare – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Subprogramul cifreImpare are un singur parametru, n, prin care primește un număr natural cu toate cifrele nenule (n∈[1,109]). Subprogramul returnează numărul obținut prin eliminarea tuturor cifrelor impare din n, respectiv -1 dacă nu există astfel de cifre sau dacă toate cifrele lui n sunt impare.

Scrieți definiţia completă a subprogramului.

Exemplu

Dacă n=23541, subprogramul returnează valoarea 24, iar dacă n=28, subprogramul returnează valoarea -1.

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.

int cifreImpare(int n)
{
    int a[11] , p = 1;
    int cn = n;
    while(n)
    {
        a[p]=n%10;
        n/=10;
        p++;
    }
    p--;
    int nr = 0;
    for(int i = p ; i >= 1 ; --i)
        if(a[i]%2==0)
        nr = nr * 10 + a[i];
    if(nr == 0 || nr == cn)
        return -1;
    return nr;
}
Comentarii

S-ar putea sa iti placa