类似“百钱买百鸡”经典问题。

题目:

某公司使用某种原材料加工两种规格的产品其中生产每件A产品消耗原材料56kg生产每件B产品消耗原材料64kg。
假设该公司现有800kg的原材料编写程序计算A、B各生存多少件剩余的原材料最少?

分析:

由题意可以得出一个二元一次方程:56*x + 64*y <= 800,通过两个for循环暴力求解即可。

 1 #include<iostream>
 2 #include<algorithm>
 3 using namespace std;
 4 
 5 int main() {
 6     int n,a,b,MAX = -1;
 7     cin>>n>>a>>b;
 8     for(int i = 0; i*a<= n; ++i) {
 9         for(int j = 0; i*a + j*b <= n; ++j)
10             MAX = max(MAX,i*a+j*b);
11     }
12     for(int i = 0; i*a <= n; ++i) {
13         for(int j = 0; i*a + j*b <= n; ++j)
14             if(MAX == i*a+j*b )
15                 printf("%d %d\n",i,j);
16     }
17     return 0;
18 }

运行结果:

 

posted @ 2020-03-02 13:38  tangq123  阅读(914)  评论(0编辑  收藏  举报