文章
79
粉丝
221
获赞
46
访问
197.1k
#include <iostream>
using namespace std;
int main() {
float n;
while(cin>>n){
for(int i=0;3*n-100-14*i>=0;i++)
for(int j=0;3*n-100-14*i-8*j>=0;j++)
if(14*i+8*j<=3*n-100)
cout<<"x="<<i<<","<<"y="<<j<<","<<"z="<<100-i-j<<endl;
}
return 0;
}
列方程,由题意知,购买只因的价格不能超过n且要购买三种只因100只,故列方程:
5x+3y+1/3z<=n
x+y+z=100
由于1/3在计算机中存储为略小于1/3或大于1/3 的浮点数,故将一式转换为:15x+9y+z<=3n
二式代入一式得出不等式:14x+8y<=3n-100
故只需求出符合要求的xy即可,z=100-x-y
遍历xy的值求解,由题意知x、y都大于等于0,故有3n-100-14x>=0与3n-100-14x-8y>=0
将两式作为两层循环的限制条件,遍历xy的值,若遇到符合要求(4*x+8*y<=3*n-100)的xy时,输出xyz的值
登录后发布评论
暂无评论,来抢沙发