根据给定范围确定包大小的 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

更新于:2022年3月11日

浏览量:116

开启你的职业生涯

完成课程获得认证

开始学习
广告