♐ CSP_J 组真题
2015年
1. 金币

线上OJ:

一本通:http://ybt.ssoier.cn:8088/problem_show.php?pid=1969 (opens in a new tab)
AcWing:https://www.acwing.com/problem/content/463/ (opens in a new tab)
洛谷:https://www.luogu.com.cn/problem/P2669 (opens in a new tab)

核心思想:

解法1、由于数据量只有 10000 天,估可以采用 模拟每一天 的方式。

解法一、(模拟代码):
#include <bits/stdc++.h>
using namespace std;
 
int k = 0;
 
int main()
{
	int ans = 0, coin = 1, cnt = 0;
	cin >> k;
	for(int i = 1; i <= k; i++) // k 轮
	{
		ans += coin; 	// +当前的金币金额
		cnt++;			// 金币出现的次数+1(比如3出现了1次,出现了2次,出现了3次)
		if(cnt == coin) // 如果金币金额和金币出现的次数相等(连续3天出现3),则重置金币数量和金币出现的次数
		{
			coin++;
			cnt = 0;
		}
	}
	
	cout << ans << endl;
	return 0;
}