A21375. 制作饮品(drink.cpp)
填空题
中等
知识点
题目描述
制作饮品(drink.cpp)
题目描述
圣诞节快到了,有 n 名同学参加一项联欢活动,为了丰富活动内容,组织者增加了一个自制饮品的环节。在这个环节中,活动策划者准备了一些原料,要求每名同学恰好制作 x 杯指定规格的饮品。你的任务是根据给定的原料数量,确定 x 的最大值。
活动策划者准备的原料有:k 瓶饮料,每瓶饮料 l 毫升;c 个柠檬,每个柠檬切成了 d 片;p 克食盐。饮品的指定规格为:每杯饮品包含 v₁毫升饮料、1 片柠檬和 p₁克食盐。
输入描述
在一行中给出 8 个正整数 n、k、l、c、d、p、v₁、p₁,这些数均不小于 1 且不超过 100,两两之间用一个空格分隔。
输出描述
输出 x 的最大值(即每名同学最多能制作的饮品杯数)。
样例输入1
3 4 5 10 8 100 3 1样例输出1
2样例输入2
5 100 10 1 1 990 4 3样例输出2
3样例输入3
10 1000 1000 25 23 150 1样例输出3
0参考答案
#include <iostream>
#include <algorithm> // 单独引入min所需的头文件(避免用bits/stdc++.h)
usingnamespacestd;
int main() {
// 变量含义注释(提升可读性)
int n; // 每份所需的材料数量
int k, l; // k瓶饮料,每瓶l升
int c, d; // c个柠檬,每个切d片
int p; // 盐的总克数
int v1; // 每份饮料需要的升数
int p1; // 每份需要的盐克数
// 输入数据
cin >> n >> k >> l >> c >> d >> p >> v1 >> p1;
// 计算每种材料能做的份数(注意:这里需要向上取整,原代码是向下取整,可能不符合实际需求)
int drink = (k * l + v1 - 1) / v1; // 饮料总量(k*l升) ÷ 每份所需升数v1 → 向上取整
int lemon = c * d; // 柠檬总片数(每片对应1份)
int salt = p / p1; // 盐能做的份数
// 三种材料中最少的份数,再除以每份需要的材料数n,得到最终能做的份数
int total =min(min(drink, lemon), salt) / n;
cout << total << endl;
return0;
}
上一题
下一题