很疑惑,明明样例都是对的,自己试了输出也没错,但就是0分

P2669 [NOIP2015 普及组] 金币

Kenny_huang @ 2024-02-01 13:21:55

#include <iostream>
using namespace std;

int main() {
    int n;
    cin >> n;
    int r, c, ans;
    int k = 1;
    while((1 + k) * k / 2 < n) k++;
    r = k;
    c = n - r * (r - 1) / 2;
    // cout << r << " " << c << endl;
    for(int i = 1; i <= r - 1; i++) { //计算前r - 1行的和
        ans += i * i;
    }
    for(int i = 1; i <= c; i++) { //从第一列一直加, 每次加r, 直到加到第c列
        ans += r;
    }
    cout << ans << endl;
    return 0;
}

by __Rickysun__ @ 2024-02-01 15:04:55

@Mingzhen_Huang 可是你的代码单独输入就可以,我从来没遇到过这种情况,就离谱(有没有一种可能洛谷判题的本质就是循环判断,你的程序放在循环里就错了,我也不知道为什么)


by Kenny_huang @ 2024-02-01 15:19:36

@Rickysun 你发给我的代码里,咱俩输出不一样,但是我自己的代码输出是对的诶


by __Rickysun__ @ 2024-02-01 15:21:36

@Mingzhen_Huang 对,我也在思考这个问题,调试代码的循环里就是错的,但是单独是就是对的,特别的离谱


by Kenny_huang @ 2024-02-01 18:20:33

@Rickysun

#include <iostream>
using namespace std;

int main() {
    for(int times = 1; times <= 10000; times++) {
        int n = times;

        //我的代码
        int r = 0, c = 0, ans = 0;
        int k = 1;
        while((1 + k) * k / 2 < n) k++;
        r = k;
        c = n - r * (r - 1) / 2;
        // cout << r << " " << c << endl;
        for(int i = 1; i <= r - 1; i++) { //计算前r - 1行的和
            ans += i * i;
        }
        for(int i = 1; i <= c; i++) { //从第一列一直加, 每次加r, 直到加到第c列
            ans += r;
        }
        cout << ans << " ";

        //AC代码
        ans = 0;
        int coin = 1;
        for(int i = 1; i <= n; i++){
            n -= i;
            ans += coin * coin;
            coin++;      
        }
        ans += n * coin;
        cout << ans << endl;

    }
    return 0;
}
/*不知道是不是洛谷的问题,我把我的和ac代码一起运行,循环10000次每个样例都跑一边输出都是一样的,但就是爆零,崩溃了*/

by cryXXXX @ 2024-07-06 21:47:50

ans没出始化


上一页 |