Rezolvare completă PbInfo #2289 ParImpar

Cerința

Pentru un număr natural dat n, numim ParImpar următoarea operație:

  • dacă n este par, rezultatul este numărul scris cu cifrele pare ale lui n – de exemplu, pentru 410722 rezultatul este 4022;
  • dacă n este impar, rezultatul este numărul scris cu cifrele impare ale lui n – de exemplu, pentru 357103 rezultatul este 35713.

Se citesc două numere naturale. Să se afișeze numărul pentru care rezultatul operației ParImpar este mai mare.

Date de intrare

Programul citește de la tastatură două numere naturale.

Date de ieșire

Programul va afișa pe ecran valoarea cerută.

Restricții și precizări

  • cele două numere citite vor fi mai mici decât 1.000.000.000
  • dacă pentru cele două numere se obține același rezultat pentru operația ParImpar se va afișa numărul mai mare.

Exemplu

Intrare

410722 357103

Ieșire

357103

Cum e corect?

cout < "As la info"; cout << "As la info"; cout >> "As la info";

Felicitări! Poți mai mult?

Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.

Greșit, dar nu-i bai!

Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.

Rezolvare

Iată rezolvarea de 100 de puncte pentru problema ParImpar:

#include <iostream>

using namespace std;

int main()
{
    int x , y;
    cin >> x >> y;
    int a  = 0, b = 0, c , p , n;
    
    n = x, c = x % 10, p =1;
    while(n)
    {
        if(n % 2 == c % 2)
            a = a + n % 10 * p, p *= 10;
        n /= 10;
    }
    n = y, c = y % 10, p =1;
    while(n)
    {
        if(n % 2 == c % 2)
            b = b + n % 10 * p, p *= 10;
        n /= 10;
    }
    
    if(a > b)
        cout << x;
    else
        if(a < b)
            cout << y;
        else
            if(x > y)
                cout << x;
            else
                cout << y;
    
    return 0;
}

Atenție

Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa Adresa de email.

Rezolvarea problemei #2289 ParImpar

Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #2289 ParImpar de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.

Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!