373
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
nnumere citite vor fi mai mici decât1.000.000.000
Exemplu
Intrare
4 127 964 801 601
Ieșire
601
Explicație
- oglinditul lui
127este721, iar diferența este594 - oglinditul lui
964este469, iar diferența este495 - oglinditul lui
801este108, iar diferența este693 - oglinditul lui
601este106, 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