在某一道题中(具体就不说哪道题了),我确切的发现我的bug是由于高精除导致的,请问谁能帮我找找bug,蒟蒻万分感激!
BigInt operator/(int y){
BigInt x=*this;
BigInt res;res.len=x.len;
int now=0;
for(register int i=x.len-1;i>=0;i--){
now+=x.num[i];
res.num[i]=now/y;
now%=y;
now*=10;
}
while(!res.num[res.len-1])res.len--;
return res;
}
BigInt operator/(BigInt y){
BigInt x=*this;
if(x<y){
BigInt t;return t;
}
BigInt t;t.num[0]=1;
BigInt l,r=x;l.num[0]=1;
BigInt mid;
while(l<r-t){
mid=(l+r)/2;
if(mid*y<x)l=mid+t;
else r=mid;
}
if(x<r*y)return l;
return r;
}