类似“百钱买百鸡”经典问题。
题目:
某公司使用某种原材料加工两种规格的产品其中生产每件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 }
运行结果: