fbpx

Problema #3251 – asociat_par – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Se dau n numere naturale. Se numește număr par asociat unui număr x numărul obținut din cifrele pare ale lui x luate în ordinea în care apar ele în x. De exemplu, numărul 3246456 are ca număr par asociat pe 24646, iar 37030 pe 0. Dacă numărul nu are cifre pare, atunci el nu are număr par asociat. Numărul 3731 nu are număr par asociat.

Exemplu

Intrare

5
45456 474 201102 2352345 234

Ieșire

2

Explicație

Dintre numerele citite 474 și 201102 au numerele pare asociate palindrom (44 și 2002).

#include <bits/stdc++.h>
using namespace std;

int main(){
    int n, cnt=0, x;
    cin >> n;
    for(int i = 1; i <= n; ++i){
        cin >> x;
        int nr = 0, put = 1;
        bool ok = false; /// o sa stiu daca numarul a continut cifre pare
        if(x == 0)
            cnt++;
        while(x){ /// calculez numerele pare
            if(x % 2 == 0)
                ok = true, nr = (x % 10) * put + nr, put *= 10;
            x/=10;
        }
        if(ok){
            int a = nr, b = 0;
            while(nr){ /// calculez rasturnatul numarului par
                b = b * 10 + nr % 10;
                nr/=10;
            }
            if(a == b) /// compar rasturnatele sa vad daca este palindrom
                cnt++; /// maresc un contor ca sa tin minte cate sunt
        }
    }
    cout << cnt;
    return 0;
}
Comentarii

S-ar putea sa iti placa