297
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ât1.000.000.000
Exemplu
Intrare
4 127 964 801 601
Ieșire
601
Explicație
- oglinditul lui
127
este721
, iar diferența este594
- oglinditul lui
964
este469
, iar diferența este495
- oglinditul lui
801
este108
, iar diferența este693
- oglinditul lui
601
este106
, iar diferența este495
Diferența minimă este 495
și se obține pentru 601
#include <bits/stdc++.h> using namespace std; int ogl(int n) { int ogl=0; while(n!=0) { ogl=ogl*10+n%10; n=n/10; } return ogl; } int main() { int n,minim=1000000000,xmax=-1,x; cin >>n; for(int i=1;i<=n;i++) { cin>>x; if(abs(x-ogl(x))<minim) { minim=abs(x-ogl(x)); xmax=x; } else if(abs(x-ogl(x))==minim) { if(x<xmax) xmax=x; } } cout<<xmax; return 0; }
Comentarii