Loading... # [NOIP2015 普及组] 金币 ## 题目背景 NOIP2015 普及组 T1 ## 题目描述 国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天),每天收到两枚金币;之后三天(第四、五、六天),每天收到三枚金币;之后四天(第七、八、九、十天),每天收到四枚金币……;这种工资发放模式会一直这样延续下去:当连续 $n$ 天每天收到 $n$ 枚金币后,骑士会在之后的连续 $n+1$ 天里,每天收到 $n+1$ 枚金币。 请计算在前 $k$ 天里,骑士一共获得了多少金币。 ## 输入格式 一个正整数 $k$,表示发放金币的天数。 ## 输出格式 一个正整数,即骑士收到的金币数。 ## 样例 #1 ### 样例输入 #1 ``` 6 ``` ### 样例输出 #1 ``` 14 ``` ## 样例 #2 ### 样例输入 #2 ``` 1000 ``` ### 样例输出 #2 ``` 29820 ``` ## 提示 **【样例 1 说明】** 骑士第一天收到一枚金币;第二天和第三天,每天收到两枚金币;第四、五、六天,每天收到三枚金币。因此一共收到 $1+2+2+3+3+3=14$ 枚金币。 对于 $100\%$ 的数据,$1\le k\le 10^4$。 ``` #include<bits/stdc++.h> using namespace std; int main() { int a,b=0,c=1; cin>>a; for(int i=1;i<=a;i++){ a-=i;b+=c*c;c++; } cout<<b+a*c; return 0; } ``` 最后修改:2024 年 03 月 14 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏