洛谷—— P1609 最小回文数
https://www.luogu.org/problemnew/show/1609
题目描述
回文数是从左向右读和从右向左读结果一样的数字串。
例如:121、44 和3是回文数,175和36不是。
对于一个给定的N,请你寻找一个回文数P,满足P>N。
满足这样条件的回文数很多,你的任务是输出其中最小的一个。
输入输出格式
输入格式:
1行,一个正整数N。N的数值小于10^100,并且N没有前导0。
输出格式:
你的程序应该输出一行,最小的回文数P(P>N)。
输入输出样例
说明
50%的数据,N<10^9
100%的数据,N<10^100
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){;}
——每当你想要放弃的时候,就想想是为了什么才一路坚持到现在。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步