灵异事件

P1015 [NOIP1999 普及组] 回文数

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
调题麻了,不想多解释了


|