一开始也可能为回文数
#include <bits/stdc++.h>
using namespace std;
string add(string A,string B)
{
reverse(A.begin(),A.end());
reverse(B.begin(),B.end());
int i = 0;
int c = 0;
string C;
char c1,c2;
while(i<A.size() || i<B.size())
{
c1 = i<A.size() ? A[i] : '0';
c2 = i<B.size() ? B[i] : '0';
c = c1-'0' + c2 - '0' + c;
C.push_back('0' + c%10);
c/=10;
i++;
}
if(c) C.push_back(c+'0');
reverse(C.begin(),C.end());
return C;
}
bool isPalindrome(string A)
{
int m = (A.size()-1)/2;
int len = A.size();
for(int i = 0;i<=m;i++)
{
if(A[i] != A[len-i-1]) return false;
}
return true;
}
int main() {
string A,B,C;
cin>>A;
int cnt = 0;
int flag = 0;
while(cnt<10)
{
if(isPalindrome(A))
{
flag = 1;
cout<<A<<" is a palindromic number."<<endl;
break;
}
B = A;
reverse(B.begin(),B.end());
C = add(A,B);
cout<<A<<" + "<<B<<" = "<<C<<endl;
if(isPalindrome(C))
{
flag = 1;
cout<<C<<" is a palindromic number."<<endl;
break;
}
A = C;
cnt++;
}
if(!flag)
{
cout<<"Not found in 10 iterations."<<endl;
}
return 0;
}