#include<iostream>
#include<vector>
#include<string>
using namespace std;
vector<int> v;
vector<int> find_reverse(vector<int> v){
vector<int> tmp;
for(int i=v.size()-1;i>=0;i--)
tmp.push_back(v[i]);
return tmp;
}
bool is_palin(vector<int> v){
int n=v.size();
for(int i=0;i<n/2;i++)
if(v[i]!=v[n-1-i])
return false;
return true;
}
void print(vector<int> v){
for(int i=0;i<v.size();i++)
cout<<v[i];
cout<<endl;
}
vector<int> add(vector<int> v1,vector<int> v2){
int len=v1.size();
int jinwei=0;
vector<int> res;
for(int i=len-1;i>=0;i--){
int tmp=v1[i]+v2[i]+jinwei;
res.push_back(tmp%10);
jinwei=tmp/10;
}
if(jinwei!=0)
res.push_back(jinwei);
return find_reverse(res);
}
int main(){
string str;
int k;
cin>>str>>k;
for(int i=0;i<str.size();i++)
v.push_back(str[i]-'0');
if(is_palin(v)){
print(v);
cout<<"0"<<endl;
}else{
bool ans=false;
for(int i=1;i<=k;i++){
vector<int> reverse=find_reverse(v);
vector<int> res_add=add(v,reverse);
if(is_palin(res_add)){
ans=true;
print(res_add);
cout<<i<<endl;
break;
}else{
v.clear();
for(int i=0;i<res_add.size();i++)
v.push_back(res_add[i]);
}
}
if(ans==false){
print(v);
cout<<k<<endl;
}
}
//system("pause");
return 0;
}
pat 1024
最新推荐文章于 2021-11-15 22:34:21 发布