Universal_xtr @ 2021-08-30 15:17:36
如题,自己把测试点 STEP=4
。为啥一上交就全 WA 呢,求助大佬。。。
#include<iostream>
#include<string>
using namespace std;
typedef long long ll;
struct big{
string num;
ll jz;
big(){num="";}
void input(){cin>>jz>>num;}
void output(){for(ll i=0;i<num.length();i++)cout<<num[i];}
bool hw(){for(ll l=0,r=num.length()-1;l<r;l++,r--)if(num[l]!=num[r])return false;return true;}
};
big rev(big n){for(ll l=0,r=n.num.length()-1;l<r;l++,r--)swap(n.num[l],n.num[r]);return n;}
big operator+(big a,big b){
big ans;a=rev(a);b=rev(b);
if(a.num.length()<b.num.length())swap(a,b);
ll jw=0;
for(ll i=0;i<a.num.length();i++){
ll tmp=a.num[i]+(i>=b.num.length()?0:b.num[i]-48)-48;
ans.num+=(tmp+jw)%a.jz+48;
jw=(tmp+jw)/a.jz;
}
if(jw)ans.num+=jw+48;
ans=rev(ans);
return ans;
}
big n,m,tmp;
ll ans=0;
int main(){
n.input();
while(true){
tmp=rev(n);
m=n+tmp;
ans+=1;
if(m.hw() or ans>=30)break;
n=m;
m=big();
}
if(ans<30)cout<<"STEP="<<ans;
else cout<<"Impossible!";
return 0;
}
by swl3992 @ 2021-08-30 15:33:51
您的问题?
我这边输出的是STEP=9
by Universal_xtr @ 2021-08-30 15:36:51
@swl3992 好吧可能是我那个在线IDE有问题。。。感谢。。。
by Universal_xtr @ 2021-08-30 15:43:52
@swl3992 我用洛谷的在线IDE测试了一下,为啥是 STEP=2
呀。。。和洛谷评测机的 STEP=9
明显矛盾呀。。。