C++妈妈给了小明n元,给小明同学去面包店买糕点吃,小明非常喜欢吃切片面包和蛋挞,今天切片面包x元一件(一包),蛋挞y元一件(一盒);小明想花光n元买这两样糕点,而且每样都至少买一件,请问,小明可以采购的方案中,能够买最多面包的方案是什么? 比如,100元,面包15元/件,蛋挞10元/件,那么可行的购买方案有: 2件面包 7件蛋挞 4件面包 4件蛋挞 6件面包 1件蛋挞 而上述方案中,面包最多的购买方案是:6件面包 1件蛋挞,因此输出:6 1
时间: 2023-11-15 07:04:12 浏览: 255
C++1220 - 买糕点
以下是C++的代码实现:
```cpp
#include <iostream>
using namespace std;
int main() {
int n, x, y;
cin >> n >> x >> y;
int max_bread = 0, max_a = 0;
for (int a = 1; a <= n / x; a++) {
int b = (n - x * a) / y;
if (b >= 1 && x * a + y * b <= n && x * (a - 1) + y * (b + 1) <= n) {
if (a > max_a) {
max_a = a;
max_bread = b;
}
}
}
cout << max_a << " " << max_bread << endl;
return 0;
}
```
首先输入总金额 $n$,切片面包单价 $x$ 和蛋挞单价 $y$。然后从 $1$ 到 $\lfloor\frac{n}{x}\rfloor$ 枚举 $a$,计算出 $b$ 的最大值,判断是否满足条件 1 和条件 2。如果满足条件,则更新最大面包数和对应的 $a$ 值。
最后输出最大的 $a$ 值和对应的 $b$ 值即可。
阅读全文