B4034 [GESP202409 一级] 小杨购物
欢迎报名洛谷网校,期待和大家一起进步!
本题有两种思路。
:::align{center} :::
思路 1:数学法
想购买相同数量的商品 A 和商品 B,可以把一个 A 商品和一个 B 商品打包为一个C 商品,其价值是
因此代码可以编写为(只展示关键代码):
int n,a,b;
cin >> n >> a >> b;
cout << n / (a + b);
思路 2:循环枚举法
如果没有想到打包,也不要紧。题目问最多能够购买多少个商品,我们可以使用计算机强大的计算能力逐一尝试。我们使用循环,让循环变量
因此代码可以编写为(只展示关键代码):
int n, a, b, i;
cin >> n >> a >> b;
for (i = 0; a * i + b * i <= n; i++);
// 让循环变量 i 从 0,1,2,... 进行尝试,如果金额(a * i + b * i)大于了 n,会退出循环。
cout << i - 1;