60分 蒟蒻求助 样例全过了

P2669 [NOIP2015 普及组] 金币

homoteam_ikun @ 2023-01-13 00:10:20

我什么都做不到 rt 下为代码

#include<iostream>
using namespace std;
int main(){
    int k,sum=1,b;//sum天数 b为总的金币数
    cin>>k;
    for(int i=1;sum<k;i++){
        for(int j=1;j<=i;j++){
            b+=i;
            if(sum==k){
                break;
            }
            sum++;
        }
        if(sum==k){
            break;
        }
    }
    cout<<b;
    return 0;
}

by Pa7rick @ 2023-01-13 02:43:19

我又来啦

先提供一个hack

输入:

2

正确输出:

3

你的输出:

1

这是边界的问题,我这里帮你改了

#include<iostream>
using namespace std;
int main(){
    int k,sum=0,b=0;//sum天数 b为总的金币数
    cin>>k;
    for(int i=1;sum<k;i++){
        for(int j=1;j<=i;j++){
            b+=i;
            sum++;
            if(sum==k){
                break;
            }
        }
    }
    cout<<b;
    return 0;
}

天数最好从0开始,方便维护(个人意见)

计数器(b)最好初始化一下,有一些oj和编译器里会RE或WA


by Pa7rick @ 2023-01-13 02:43:36

@homoteam_ikun


by homoteam_ikun @ 2023-01-13 03:00:50

@Pa7rick 感激不尽


by homoteam_ikun @ 2023-01-13 03:03:40

@Pa7rick 感谢大佬 本题已ac 此贴终 词穷 只能说这么多了


|