描述
回文数指的是一个数字,从左到右读和从右到左读都一样。
例如,1221和 1234321 是回文数,1234 不是回文数。
现有 n 个正整数 ai(i=0,1,2,3,…n-1),请找出其中最大的回文数。
输入描述
输入文件名为 number.in
输入文件的第一行只有一个正整数 n,代表正整数 ai 的个数。
接下来的 n 行,每行包含一个正整数 ai。输入保证一定有回文数。
输出描述
输出文件名为 number.out
输出文件一行,一个正整数,即最大的回文数。
样例输入 1
3 4718 1221 121
样例输出 1
1221
样例输入 2
5 3944 953 8 75739 46
样例输出 2
8
提示
【输入输出样例 1 说明】
回文数有 1221 和 121,最大的回文数是 1221。
【输入输出样例 2 说明】
回文数只有一个 8,因此最大的回文数就是 8。
【数据说明】
对于 30%的数据,1≤n≤100,1≤ai≤108。
对于 60%的数据,1≤n≤1000,1≤ai≤1016。
对于 100%的数据,1≤n≤104,1≤ai≤1032。
#include<iostream>
#include<cstdio>
#include<cmath>
#include<string>
using namespace std;
int chang(string s){
bool boo=1;
int left=0,right=s.size()-1;
while(left<right){
if(s[left]!=s[right]){
boo=0;
break;
}
left++;
right--;
}
if(boo){
return s.size();
}
else{
return -1;
}
}
int main(){
int n;
cin>>n;
string str=" ";
int max=0;
for(int i=0;i<n;i++){
string s=" ";
cin>>s;
int ch=chang(s);
if(ch>max){
max=ch;
str=s;
}
else if(ch==max&&s>str){
str=s;
}
}
cout<<str;
return 0;
}