题解:洛谷 P2669 [NOIP 2015 普及组] 金币

【题目来源】

洛谷:P2669 [NOIP 2015 普及组] 金币 - 洛谷

【题目描述】

国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天),每天收到两枚金币;之后三天(第四、五、六天),每天收到三枚金币;之后四天(第七、八、九、十天),每天收到四枚金币……;这种工资发放模式会一直这样延续下去:当连续 nn 天每天收到 nn 枚金币后,骑士会在之后的连续 \(n+1\) 天里,每天收到 \(n+1\) 枚金币。

请计算在前 \(k\) 天里,骑士一共获得了多少金币。

【输入】

一个正整数 \(k\),表示发放金币的天数。

【输出】

一个正整数,即骑士收到的金币数。

【输入样例】

6

【输出样例】

14

【算法标签】

《洛谷 P2669 金币》 #数学# #NOIP普及组# #2002#

【代码详解】

#include <bits/stdc++.h>
using namespace std;
int k, day, ans;
int main()
{
	cin >> k;  //输入k
	for (int i=1; i<=10000; i++) {  // 枚举“之后i天”,如“之后2天”,“之后3天”
	    for (int j=1; j<=i; j++) {  // 枚举i天
	        ans += i;  // 每天金币数增加i
	        day++;  // 第day天
	        if (day==k) {  // 如果达到第k天,输出结果,并结束程序
	            cout << ans << endl;
	            return 0;
	        }
	    }
	}
	return 0;
}

【运行结果】

6
14
posted @ 2026-02-16 15:16  团爸讲算法  阅读(1)  评论(0)    收藏  举报