回文数是从左向右读和从右向左读结果同样的数字串。ios
例如:12一、44 和3是回文数,175和36不是。spa
对于一个给定的N,请你寻找一个回文数P,知足P>N。code
知足这样条件的回文数不少,你的任务是输出其中最小的一个。blog
输入格式:ci
1行,一个正整数N。N的数值小于10^100,而且N没有前导0。get
输出格式:string
你的程序应该输出一行,最小的回文数P(P>N)。io
50%的数据,N<10^9class
100%的数据,N<10^100stream
1 #include <iostream> 2 #include <cstring> 3 #include <string> 4 5 using namespace std; 6 7 string tmp,s; 8 int n; 9 10 int Presist() 11 { 12 cin>>s; 13 tmp=s; n=s.length(); 14 for(int i=0; i<n>>1; ++i) 15 s[n-i-1]=s[i]; 16 if(s>tmp) { cout<<s; return 0; } 17 for(int i=(n-1)>>1; i>=0; --i) 18 if(s[i]=='9') s[i]='0'; 19 else { s[i]++; break; } 20 for(int i=0; i<n>>1; ++i) 21 s[n-i-1]=s[i]; 22 if(s[0]=='0') s[0]='1',s+='1'; 23 cout<<s; 24 return 0; 25 } 26 27 int Aptal=Presist(); 28 int main(int argc,char**argv){;}