解题思路:注意数字转字符要+ ' 0 ',字符转数字要 - ' 0 '
#include<bits/stdc++.h>
using namespace std;
string huiwen(string s){
string s1=s,s2=s;
int jin=0;
reverse(s1.begin(), s1.end());
reverse(s2.begin(), s2.end());
for(int i=s.size()-1;i>=0;i--){
s2[i]=((s[i]-'0'+s1[i]-'0'+jin)%10)+'0';
jin=((s[i]-'0'+s1[i]-'0'+jin)/10);
}
if(jin>0)
s2.insert(0,"1");
return s2;
}
int main(){
string s,s1="",s2="";
int index=1;
cin>>s;
int cnt = 0;
while (cnt < 10) {
string t = s;
reverse(t.begin(), t.end());
if (t == s) {
cout << s << " is a palindromic number.";
break;
} else {
cout << s << " + " << t << " = " << huiwen(s) << endl;
s = huiwen(s);
cnt++;
}
}
if (cnt == 10) cout << "Not found in 10 iterations.";
}
运行结果: