金币--题解
2026-06-09 09:17:37
发布于:黑龙江
8阅读
0回复
0点赞
本体是一道模拟解法的经典题目.数据范围很小,用int就可以轻松AC
代码如下:
#include<bits/stdc++.h> // 万能头文件,包含所有标准库
using namespace std;
int main(){
int n, // 输入的总天数
a=0, // 当前阶段每天收到的金币数(从0开始递增)
b=0, // 已经发放金币的总天数(计数器)
c=1, // 当前阶段应该持续的天数(第1阶段持续1天)
d=0; // 累计收到的总金币数
cin >> n; // 读入总天数
// 外层循环:控制金币数增长的阶段
for(int i = 1; i > 0; i++){ // 无限循环,直到达到总天数
a += 1; // 当前阶段每天的金币数增加1
// 第1轮:a=1,第2轮:a=2,第3轮:a=3...
// 内层循环:模拟当前阶段的每一天
for(int k = 1; k <= c; k++){
b += 1; // 已发放天数+1
d += a; // 今天收到a枚金币,累加到总金币
if(b == n) break; // 如果已经达到总天数,跳出内层循环
}
if(b == n) break; // 如果已经达到总天数,跳出外层循环
c += 1; // 准备进入下一阶段,持续天数增加1
// 第1阶段:c=1,第2阶段:c=2,第3阶段:c=3...
}
cout << d; // 输出总金币数
return 0;
}
这里空空如也


有帮助,赞一个