Cerința
Subprogramul Impare
are un singur parametru, n
, prin care primește un număr natural. Subprogramul înlocuiește fiecare cifră impară a lui n
cu cea mai mare cifră pară strict mai mică decât ea (astfel cifra 1
se înlocuieşte cu cifra 0
, cifra 3
cu cifra 2
etc.) și furnizează numărul obținut tot prin parametrul n
.
Scrieți definiția completă a subprogramului.
Restricții și precizări
1 ≤ n ≤ 1.000.000.000
- Numele funcției va fi
Impare
- Funcția va primi un singur parametru, numărul
n
, iar la finalul funcțiein
va avea valoarea cerută.
Exemplu
Dacă n=235690
, atunci, după apel, n=224680
, iar dacă n=15690
, atunci, după apel, n=4680
.
Important
Soluția propusă va conține doar definiția funcției cerute. Prezența în soluție a altor instrucțiuni poate duce la erori de compilare sau de execuție care vor avea ca efect depunctarea soluției.
void Impare(int &n) { int a[11], x = 0; while(n) { a[x] = n % 10; n/=10; x++; } int p = 1; for(int i = 0 ; i < x; ++i) { if(a[i] % 2 == 1) a[i] --; n = n + a[i] * p; p *= 10; } }