# PBinfo #1410 – Numere12 – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: andrei

## Enunț

Cerința
Se citesc perechi de numere naturale până la citirea a două valori nule. Să se determine câte dintre perechile X Y au proprietatea că prin concatenarea lui X cu Y sau a lui Y cu X să se obțină un palindrom.

Date de intrare
Programul citește de la tastatură perechi de numere naturale. Citirea se încheie la introducerea a două valori nule.

Date de ieșire
Programul va afișa pe ecran numărul C, reprezentând valoarea cerută.

Restricții și precizări

se vor citi cel mult 40 de perechi de numere;
ultima pereche citită nu se va lua în considerare;
toate numerele citite vor fi mai mici decât 1.000.000;
toate numerele citite sunt nenule, cu excepția ultimelor două;
prin concatenarea a două numere înțelegem “lipirea” lor; de exemplu, 12 concatenat cu 5 este 125, iar 5 concatenat cu 12 este 512.

Exemplu:
Intrare

14 516
14 416
13 13
123 321
156 2651
456 674
0 0
Ieșire

3
Explicație
Perechile care respectă regula sunt: 

14 416: 41614 este palindrom;
123 321: 123321 este palindrom; la fel și 321123 este palindrom;
156 2651: 1562651 este palindrom.

## Cod sursă C++

```cpp
#include <iostream>
using namespace std;
int main() {
    long long int a, b, contor = 0;
    cin >> a >> b;
    while (a != 0 && b != 0) {
        long long int x = a, y = b;
        long long int pa  = 1, pb = 1;
        while (x) 
            pa = pa * 10, x = x / 10;
        while (y) 
            pb = pb * 10, y = y / 10;
        long long int p, q, oglinda;
        p = q = a * pb + b, oglinda = 0;
        while (p != 0)
            oglinda = 10 * oglinda + p % 10, p = p / 10;
        if (oglinda == q)
            contor++;
        else {
            p = q = b * pa + a, oglinda = 0;
            while (p != 0)
                oglinda = 10 * oglinda + p % 10, p = p / 10;
            if (oglinda == q) contor++;
        } cin >> a >> b;
    } cout << contor << endl;
    return 0;
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/1410)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/1410/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-1410/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
