简单模拟题,注意进位操作
#include<bits/stdc++.h>
using namespace std;
int n,m;
int a[5000],b[5000],cntt,ll,inq1[5000],inq2[5000];
string s;
bool pq(){
for(int i=0;i<(ll)/2;i++){
if(a[i]!=a[ll-1-i])return 0;
}
return 1;
}
int main(){
cin>>s;
for(int i=0;i<s.length();i++)a[i]=s[i]-'0';
ll=s.length();
while(1){
if(pq()){
for(int i=0;i<ll;i++)printf("%d",a[i]);
printf(" is a palindromic number.");
break;}
if(cntt==10){
printf("Not found in 10 iterations.");
break;
}
for(int i=0;i<ll;i++)printf("%d",a[i]);
printf(" + ");
for(int i=0;i<ll;i++){
b[i]=a[ll-i-1];
printf("%d",b[i]);}
for(int i=0;i<ll;i++){
a[i]+=b[i];
}
for(int i=ll-1;i>=1;i--){
if(a[i]>=10){
a[i-1]++;
a[i]-=10;
}
}
if(a[0]>=10){
a[0]-=10;
for(int i=ll;i>=1;i--)a[i]=a[i-1];
a[0]=1;
++ll;
}
printf(" = ");
for(int i=0;i<ll;i++)printf("%d",a[i]);
printf("\n");
cntt++;
}
return 0;
}