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

Se citeşte un număr natural, n (n≥1), şi se cere să se scrie numărul obţinut prin duplicarea
fiecărei cifre pare a lui n sau -1 dacă acesta nu are nicio cifră pară.
Exemplu: dacă n=2380 se scrie
2238800
Scrieți un program in C++

Răspunsuri la întrebare

Răspuns de CinevaFaraNume
0

#include <iostream>

using namespace std;

int main(){

int x,y;

cin >> x;

bool areCifPare=false;

y = 0;

int zf = 0;

while(x!=0){

y=y*10+x%10;

if(x%10==0)zf++;

areCifPare= areCifPare || x%2==0;

x/=10;

}

if(!areCifPare){cout<<"-1"; return 0;}

while (y){

int c=y%10;

if (c%2==0)

x = x*100+11*c;

else x = x*10+c;

y/=10;

}

cout << x;

for(int i = 0; i < zf; i++)

cout << "00";

cout <<'\n';

return 0;

}

Răspuns de boiustef
0

Răspuns:

#include <iostream>

using namespace std;

long long n,cif,p=1,nou,exista;

int main()

{

   cin >> n;

   while (n)

   {

       cif=n%10;

       if (cif%2==0)

       {

           exista=1;

           nou=cif*p+nou;

           p=p*10;

           nou=cif*p+nou;

       }

       else

       {

           nou=cif*p+nou;

       }

       p*=10;

       n/=10;

   }

   if (exista) cout << nou;

   else cout << -1;

}

Explicație:

Alte întrebări interesante