题目
reverse()
ss=s.substr(开始下标,长度) 复制字符串的一段
stoll()string转long long
#include<bits/stdc++.h> using namespace std; typedef long long ll; ll n, m; vector<ll> ans; ll find_palin(ll n){ if(n<10)return n; if(n==10)return 1; if(n>=11&&n<=99) return n/11*11; string s=to_string(n), s_half=s; reverse(s_half.begin(),s_half.end()); if(s==s_half) return n; s_half=s.substr(0,s.size()+1>>1); ll m=stoll(s_half)-1;// s_half=to_string(m);//cout<<m<<endl; string ans=s_half; for(int i=s_half.size()-1-s.size()%2;i>=0;i--) ans+=s_half[i]; return stoll(ans); } int main() { scanf("%lld",&n); for(;n;n-=m){ ans.push_back(m=find_palin(n)); } printf("%d\n",ans.size()); for(int i=0;i<ans.size();i++){ printf("%lld\n",ans[i]); } return 0; }