根据给定范围确定包大小的 C++ 代码
假设我们有两个数字 l 和 r。有一家商店,我们想以折扣价出售装有 'a' 个食物的食品容器,一些顾客想购买 x 个食物。顾客遵循贪婪策略:
他以折扣价购买 floor(x/a) 包。
然后想逐个购买剩余的 (x mod a) 个食物。
但顾客很贪婪,如果他想要逐个购买 (x mod a) 个食物,并且碰巧 (x mod a) ≥ a/2,那么他决定购买整包 a 个食物。顾客可以在 l 到 r(包括两端)范围内购买任意数量的食物,我们必须检查是否可以选择这样的包装大小 a,使得每个顾客购买的食物数量都超过他们最初想要的数量?
因此,如果输入为 l = 3;r = 4,则输出为 True,因为如果 a = 5,那么如果他们想购买 3 或 4 个罐头,他们可以购买一包。
步骤
为了解决这个问题,我们将遵循以下步骤:
if r / 2 >= l, then: return false Otherwise return true
示例
让我们看看下面的实现来更好地理解:
#include <bits/stdc++.h> using namespace std; bool solve(int l, int r){ if (r / 2 >= l) return false; else return true; } int main(){ int l = 3; int r = 4; cout << solve(l, r) << endl; }
输入
3,4
输出
1
广告