查找需要购买的补充包数量的 C++ 代码


假设在一个特定星期内,一个体育场需要举办 'a' 场比赛和 'b' 场新闻发布会。体育场有两个餐厅,一个在球员更衣室,一个在新闻发布区。每个餐厅有两个软饮料分配器,需要在一周开始时填充。更衣室餐厅的饮料分配器使用频率很高,需要每 'c' 场比赛补充一次,而新闻发布区餐厅的分配器需要每 'd' 场活动补充一次。体育场维护委员会在一周开始时可以订购 k 个饮料补充包,其中 'x' 包用于更衣室餐厅,'y' 包用于新闻发布室餐厅,且 x + y <= k。给定比赛时间表,我们必须找出 x 和 y 的值,如果需要超过 k 个补充包,则打印“超出限制”。

因此,如果输入类似于 a = 8,b = 8,c = 4,d = 6,k = 9,则输出将为 2, 2。

步骤

为了解决这个问题,我们将遵循以下步骤:

a := (c + a - 1) / c
b := (d + b - 1) / d
if a + b <= k, then:
   print(a, b)
Otherwise,
   print("Limit Exceeded")

示例

让我们看看以下实现以获得更好的理解:

#include <bits/stdc++.h>
using namespace std;
#define N 100
void solve(int a, int b, int c, int d, int k) {
   a = (c + a - 1) / c;
   b = (d + b - 1) / d;
   if(a + b <= k)
      cout<<a<<" "<<b<<"\n";
   else
      cout<<"Limit Exceeded."<<"\n";
}
int main() {
   int a = 8, b = 8, c = 4, d = 6, k = 9;
   solve(a, b, c, d, k);
   return 0;
}

输入

8, 8, 4, 6, 9

输出

2 2

更新于: 2022-03-29

155 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告