字符串
Balanced Breakdown
https://ac.nowcoder.com/acm/contest/13924/B
题目
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;
}
查看4道真题和解析