题目:一个长度为L米的材料,需要截成长度为a米和b米的短材料,求两种短材料各截多少根时,剩余的材料最少。
解法:
冒泡算法
#include<stdio.h>
void main()
{
int L,a,b,x,y,i,j,sub,min;
int maxa,maxb;
printf("请输入材料长度L:");
scanf("%d",&L);
printf("请输入短材料a和b的长度:");
scanf("%d%d",&a,&b);
min=L;
maxa=L/a;//a材料最多的数目
maxb=L/b;//b材料最多是数目
for(i=0;i<=maxa;i++)
for(j=0;j<=maxb;j++)
{
sub=L-i*a-j*b;
if(sub<0)continue;
else
{
if(sub<min)
{
min=sub;
x=i;
y=j;
}
}
}
printf("a材料%d段,b材料%d段 ",x,y);
}