# PBinfo #2290 – Oglindite  – Rezolvare C++

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

## Enunț

Cerința
Se dau n numere naturale. Afișați numărul pentru care diferența în valoare absolută dintre el și oglinditul său este minimă. Dacă există mai multe asemenea numere, afișați-l pe cel mai mic.

Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale.

Date de ieșire
Programul va afișa pe ecran numărul determinat x.

Restricții și precizări

1 ≤ n ≤ 1000
cele n numere citite vor fi mai mici decât 1.000.000.000

Exemplu:
Intrare

4
127 964 801 601
Ieșire

601
Explicație

oglinditul lui 127 este  721, iar diferența este 594
oglinditul lui 964 este  469, iar diferența este 495
oglinditul lui 801 este  108, iar diferența este 693
oglinditul lui 601 este  106, iar diferența este 495

Diferența minimă este 495 și se obține pentru 601

## Cod sursă C++

```cpp
#include <iostream>
using namespace std;
int main() {
    int n, varminim = 1000000000, nrminim = 0;
    cin >> n;
    for (int i = 1; i <= n; i++) {
        int temp, oglinda = 0;
        cin >> temp;
        int copie = temp;
        while (copie) {
            oglinda = 10 * oglinda + copie % 10;
            copie = copie / 10;
        } if (abs(temp - oglinda) < varminim) {
            varminim = abs(temp - oglinda);
            nrminim = temp;
        } else if (abs(temp - oglinda) == varminim)
                if (temp < nrminim)
                    nrminim = temp;
    } cout << nrminim;
    return 0;
}
```

## Resurse

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