测试点2不过,因为1年多没做题灰名了,下载不了数据
#include<bits/stdc++.h>
using namespace std;
int p[101],q[101],sum[101];
int n,step=0,len,c;
string m;
bool huiwen(int a[101]){
for(int i=0;i<len;i++){
if(a[i]!=a[len-i-1]){
return false;
}
}
return true;
}
void jisuan(){
c=0;
for(int j=0;j<101;j++){
sum[j]=0;
}
for(int j=0;j<len;j++){
q[j]=p[len-j-1];
}
for(int j=0;j<len;j++){
sum[j]=(p[j]+q[j]+c)%n;
c=(p[j]+q[j]+c)/n;
}
sum[len]=c;
if(sum[len]!=0){
len++;
}
step++;
if(huiwen(sum)==true){
if(step<=30){
cout<<"STEP="<<step;
return ;
}
else{
cout<<"Impossible!";
return ;
}
}
else{
for(int i=0;i<len;i++){
p[i]=sum[i];
}
jisuan();
}
}
int main(){
cin>>n;
cin>>m;
len=m.size();
for(int i=0;i<len;i++){
p[i]=m[len-i-1]-48;
}
jisuan();
return 0;
}