金币(NOIP2015)

来源:互联网 发布:千里走单骑知乎 编辑:程序博客网 时间:2024/05/03 00:15

先给题目:金币
又是很水的题,很简单,直接上代码:

#include<bits/stdc++.h>using namespace std;int main(){    int n;    scanf("%d",&n);    int add=1;          //1    int ans=0;    while(n>0){        if(n>=add){       //2            n-=add;       //3              ans+=add*add;        }else{            ans+=add*n;            n-=add;         //4        }        add++;          //5    }    printf("%d",ans);    return 0;}

有5点值得讲一下:
1处:add用来计算当前每天给多少金币。
2、3处:提一下这里n是剩余天数,add金币要发add天,这里若n够add,则发add天。如果不够,则发n天。
4处:这里仍然要减,是为了结束循环。因为循环条件是n>0,减了后,变成负数,就可以退出循环。
5处:当前发金币数加一。

原创粉丝点击