0
已解决
黄依成
中级天翼
中级天翼
my WA90 code:
#include<iostream>
#include<cstring>
#include<string>
using namespace std;
int n,a[105],b[105],c[105],cnt;
string m;
string Plus(string x,string y,int t){
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
a[0]=x.size(),b[0]=y.size(),c[0]=max(a[0],b[0]);
for(int i=1;i<=a[0];i++) a[i]=x[a[0]-i]-'0';
for(int i=1;i<=b[0];i++) b[i]=y[b[0]-i]-'0';
int jw=0;string ans="";
for(int i=1;i<=c[0];i++){c[i]=a[i]+b[i]+jw,jw=c[i]/t,c[i]%=t;}
if(jw>0){c[0]++,c[c[0]]=jw;}
for(int i=1;i<=c[0];i++) ans=char(c[i]+'0')+ans;
return ans;
}
string ds(string x){
string sum="";
for(int i=x.size();i>=0;i--) sum=sum+x[i];
return sum.erase(0,1);
}
bool hw(string x){
return ds(x)==x;
}
int main(){
cin>>n>>m;
while(!hw(m)){
m=Plus(ds(m),m,n);
cnt++;
if(cnt>=30) break;
}
if(cnt>=30) cout<<"Impossible!";
else cout<<"STEP="<<cnt;
return 0;
}
help!