一层while即可,轻松通过

P2669 [NOIP2015 普及组] 金币

查帅 @ 2017-10-29 20:46:42

这道题算法其实很简单,我们先每天拿一枚金币,这样就拿完了k枚金币,第一天只能拿一枚金币,第一天就拿完了,所以让k减掉拿完的。

再每天拿一枚金币,就拿完了二,三两天的,再让k减去拿完的天数。以此类推,直到k<=0,才不能拿,跳出循环,具体代码如下:

#include<bits/stdc++.h>
using namespace std;
int main(){
    int k,n=1,ans=0;
    cin>>k;
    while(k>0){
        ans+=k;
        k-=n;n++;
    }
    cout<<ans;
    return 0;
}
第一次发帖,如果讲的不是很到位,还请谅解

by moye到碗里来 @ 2017-10-29 20:49:47

您如果想讲题别发帖子发题解好不?


by 查帅 @ 2017-10-29 20:53:20

@moye到碗里来 封锁了,发不了


by Lolierl @ 2017-10-29 20:57:46

@查帅 那你发帖还有什么意义


by 查帅 @ 2017-10-29 21:00:37

@Lolierl 聊聊新算法


by Lolierl @ 2017-10-29 21:19:45

@查帅 您是从哪看出“新”的?


|