Informatică, întrebare adresată de Utilizator anonim, 8 ani în urmă

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ției n va avea valoarea cerută.​

Răspunsuri la întrebare

Răspuns de lucaciucandrei
3

void Impare(int & n) {

   int a[11], x = 0;

   while (n) {

       a[x++] = n % 10;

       n /= 10;

   }

   int p = 1;

   for (int i = 0; i < x; i++) {

       if (a[i] % 2 == 1)

           a[i]--;

       n = n + a[i] * p;

       p *= 10;

   }

}


Utilizator anonim: Explicat, te rog. :(
lucaciucandrei: ce-ti place sa ma frichini :))))) memoram intr-un vector de aparitii de cate ori apare fiecare cifra din n si apoi o scadem cu o unitate daca e impara si refacem nr nou
Alte întrebări interesante