根据给定范围确定包大小的 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
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP