和1024一毛一样,挺感慨的,上个月还用极其复杂的方式实现了,我自己都不想看的代码。。
#include<bits/stdc++.h>
using namespace std;
string add(string a,string b){
int temp1,temp2,m=0;
string c;
for(int i=0;i<a.size();i++){
temp1=a[i]-'0';
temp2=b[i]-'0';
temp1=temp1+temp2+m;
c+=(char)(temp1%10+'0');
m=temp1/10;
}
if(m!=0){
c+=(char)('0'+m);
}
reverse(c.begin(),c.end());
return c;
}
bool ispal(string a){
for(int i=0;i<a.size()/2;i++){
if(a[i]!=a[a.size()-i-1])return false;
}
return true;
}
int main(){
string num1,num2,ans;
cin >> num1;
if(ispal(num1)){
printf("%s is a palindromic number.",num1.c_str());
return 0;
}
for(int i=0;i<10;i++){
num2=num1;
reverse(num2.begin(),num2.end());
ans=add(num1,num2);
cout<<num1<<" + "<<num2<<" = "<<ans<<'\n';
if(ispal(ans)){
printf("%s is a palindromic number.",ans.c_str());
return 0;
}
num1=ans;
}
printf("Not found in 10 iterations.");
return 0;
}