1.题目介绍
2.考察点,难度
高精度题,string字符串处理,难度易
3.解题代码
#include <bits/stdc++.h>
using namespace std;
string add(string a){
string b=a,c="";
int flag=0;
reverse(a.begin(),a.end());
for(int i=0;i<a.length();i++){
c+=to_string(((a[i]-'0')+(b[i]-'0')+flag)%10);
flag=((a[i]-'0')+(b[i]-'0')+flag)/10;
}
if(flag) c+=to_string(flag);
return c;
}
int main(){
string s;
int step;
cin>>s>>step;
for(int i=0;i<=step;i++){
string p=s;
reverse(p.begin(),p.end());
if(s==p){
cout<<s<<endl;
cout<<i<<endl;
break;
}else{
if(i==step){
reverse(s.begin(),s.end());
cout<<s<<endl;
cout<<i<<endl;
break;
}
s=add(s);
}
}
return 0;
}
4.原题地址
https://pintia.cn/problem-sets/994805342720868352/problems/994805476473028608