Informatică, întrebare adresată de Nyxye, 8 ani în urmă

Scrieti o functie care sa afiseze un numar dupa ce au fost eliminate cifrele impare din acesta.


LapteDeUnicorn: c++?
Nyxye: da

Răspunsuri la întrebare

Răspuns de LapteDeUnicorn
2

#include <iostream>

using namespace std;

// se declara variabilele n,m si p de tip intreg

//variabila n memoreaza numarul introdus de la tastatura

//variabila m memoreaza numarul format prin eliminarea cifrelor impare ale lui n

//variabila p memoreaza o putere a lui 10 si ajuta la construirea numarului cerut prin adaugarea fiecarei cifre pare pe pozitia corespunzatoare(unitati,zeci,sute etc.)

int n,m,p;

int main()

{// se citeste numarul n

   cout<<"Introduceti numarul n: ";

cin>>n;

//p se initializeaza cu elementul neutru al inmultirii

p=1;

//construim numarul m cu cifrele pare ale lui n, astfel m o sa reprezinte numarul format prin eliminarea cifrelor impare

while(n>0)

{if(n%2==0)//se verifica daca cifra este para

       m=(n%10)*p+m;// se adauga cifra pe pozitia corespunzatoare in numarul nou format(unitati, zeci, sute etc.)

   p=p*10;//se mareste puterea lui 10, pentru ca urmatoarea cifra para sa fie adaugata din nou pe pozitia corespunzatoare(zeci, sute, mii etc.)

   }

   n=n/10;//se elimina cifra din numar

}

//se verifica daca numarul n are cel putin o cifra para

if(p==1)// daca p ramane egal cu 1 inseamna ca testul n%2==0 nu a fost trecut pentru nicio cifra a lui n, deci numarul are numai cifre impare

   cout<<"Numarul are numai cifre impare";

else

{// se afiseaza numarul m obtinut prin eliminarea cifrelor impare ale lui n, format doar din cifre pare

cout<<"Prin eliminarea cifrelor impare ale lui n se obtine numarul: "<<m;

}

   return 0;

}



Alte întrebări interesante