412
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țieinva 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;
}
}
Comentarii