<>很谢谢你!</P><>我做出来了!!</P><>我开始用的是C做了一个分法求解再按做一个线性规划问题求解;</P><P>#include <stdio.h>
#include <stdlib.h>
#include<math.h>
float min(float x,float y,float z);
void main()
{
int i,j,k;
float l,l1,l2,l3,l4;
float xx,sum,temp;
printf("请输入原材料的长度: ");
scanf("%f",&l);
printf("\n请输入材料一的长度: ");
scanf("%f",&l1);
printf("\n请输入材料二的长度: ");
scanf("%f",&l2);
printf("\n请输入材料三的长度: ");
scanf("%f",&l3);
l4=min(l1,l2,l3);
printf("各种材料的最佳方案\n");
printf("%f,%f,%f \n",l1,l2,l3);
for(i=0;i<=l/l1;i++)
for(j=0;j<=l/l2;j++)
{
temp=l;
for(k=0;k<=l/l3;k++)
{
sum=l1*i+l2*j+l3*k;
if(sum<=l)
{
xx=l-sum;
if(xx<l4)
printf(" %d, %d, %d\n",i,j,k);
}
}
}
}</P><P>float min(float x,float y,float z)
{
float a;
if(x>y)
{
a=x;x=y;y=a;
}
if(x>z)
{
a=x;x=z;z=a;
}
if(y>z)
{
a=y;
y=z;z=a;}
return x;
}</P> |