超简单易懂题解 + 最简 C++ 代码
2026-04-04 17:33:41
发布于:广东
0阅读
0回复
0点赞
一、题目核心(人话版)
你需要买 至少 n 支铅笔
只能选同一种包装买,不能混装、不能拆包
三种包装,每种有「每包铅笔数」和「每包价格」
求:买够至少 n 支,最少花多少钱
二、解题思路(一步到位)
对每一种包装,单独计算:
算需要买多少包:
如果 n 能被「每包数量」整除:包数 = n / 每包数量
如果不能整除:包数 = n / 每包数量 + 1(向上取整,多买一包凑够)
算这种包装的总花费 = 包数 × 每包价格
三种包装的总花费,取最小值就是答案
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int n;
cin >> n;
int ans = 1e9; // 初始设一个极大值,用来存最小值
for (int i = 0; i < 3; i++) {
int cnt, price;
cin >> cnt >> price;
// 计算需要买的包数(向上取整)
int pack = (n + cnt - 1) / cnt;
// 计算总花费,更新最小值
ans = min(ans, pack * price);
}
cout << ans << endl;
return 0;
}
这里空空如也

有帮助,赞一个