@xiazha 这位仁兄没解决
#include<bits/stdc++.h>
using namespace std;
int n,len,ans;
char m[101];
int m1[131],m2[131],m3[131];
bool pd()
{
for(int i=1;i<=len/2;i++) if(m1[i]!=m1[len-i+1]) return false;
return true;
}
void hplus()
{
for(int i=1;i<=len;i++) m2[i]=m1[len-i+1];
for(int i=1;i<=len;i++)
{
m3[i]=m1[i]+m2[i];
if(m3[i]>=n) m3[i+1]++,m3[i]-=n;
}
if(m3[len+1]) len++;
for(int i=1;i<=len;i++) m1[i]=m3[i];
return;
}
int main()
{
cin>>n>>m;
len=strlen(m);
for(int i=1;i<=len;i++)
{
if(m[i]>='0'&&m[i]<='9') m1[len-i+1]=m[i]-'0';
else m1[len-i+1]=m[i]-'A'+10;
}
while(!pd())
{
ans++;
if(ans>30)
{
cout<<"Impossible!"<<endl;
return 0;
}
hplus();
}
cout<<"STEP="<<ans;
return 0;
}