262620zzj @ 2023-09-28 20:11:13
我的高精度进位
void fix(){
for(int i=1;i<len;i++){
x[i+1]+=x[i]/n;
x[i]%=n;
}
while(x[len]>=n){
x[++len]=x[len-1]/n;
x[len-1]%=n;
}
}
本地对,洛谷错
void fix(){
for(int i=1;i<len;i++){
x[i+1]+=x[i]/n;
x[i]%=n;
}
while(x[len]>=n){
x[++len]=x[len]/n;
x[len-1]%=n;
}
}
仅仅在while中一个是len-1一个是len,为什么会这样
by 262620zzj @ 2023-09-28 20:11:52
第二个洛谷对,本地错
by Cindy_Li @ 2023-09-28 20:17:23
我猜是不同编译器导致的 ++len
运算优先级问题(?
你试试把 ++len
放外面?
by sjr3065335594 @ 2023-09-28 20:20:20
@Cindy_Li 按理来讲是因为这个,我之前也错过在 这里
by fangzichang @ 2023-09-28 20:36:49
求求了开个 -Wextra
罢。
link
调题麻了,不想多解释了