fbpx

Problema #2674 – IncDecRec – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Scrieți funcția recursivă IncDecRec care primind ca parametru un număr natural n, returnează numărul obținut din n prin scăderea cu 1 a fiecărei cifre impare și creșterea cu 1 a fiecărei cifre pare.

Restricții și precizări

  • 0 ≤ n ≤ 999.999.999
  • Numele funcției este IncDecRec.
  • Se recomandă utilizarea recursivității în rezolvarea problemei. De asemenea, se recomandă să nu se folosească alte funcții suplimentare.

Exemplu

IncDecRec(4321) = 5230.

int IncDecRec(int n)
{
    int vec[10];
    int p = 0;
    if(n == 0)
        vec[0]=0 , p++;
    while(n)
    {
        vec[p]=n%10;
        p++;
        n/=10;
    }
    for(int i = 0 ; i < p ; ++i)
        if(vec[i]%2==0)
            vec[i]++;
        else
            vec[i]--;
    int val = 0;
    for(int i = p-1 ; i >= 0 ; --i)
        val = val * 10 + vec[i];
    return val;
}
Comentarii

S-ar putea sa iti placa