题解
【基础】骑士的金币
1 条题解
-
0
#include <iostream> using namespace std; int main() { int n; cin >> n; long long total = 0; // 总金币数 int days = 0; // 已经过了多少天 int k = 1; // 当前阶段每天拿 k 枚金币 while (days + k <= n) { total += k * k; // 连续 k 天,每天 k 枚 → 共 k² 枚 days += k; k++; } // 剩余不足 k 天 if (days < n) { total += (n - days) * k; // 剩下的天数,每天拿 k 枚 } cout << total << endl; return 0; }
- 1