迴文數是從左向右讀和從右向左讀結果同樣的數字串。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){;}