pascal高手在哪儿啊

来源:百度知道 编辑:UC知道 时间:2024/05/16 04:26:40
请高手直接加我好友并解决我点题目
有一根长为600cm的钢筋,需要截成长度为69cm、39cm、29cm的三种规格的短料,在三种规格的短料至少各截l的前提下,如何截取才能使所余下的材料最少?(答案:这三种规格分别截取6、4、l根时余料最少)
要全部的程序越简便越好啊

这是曾经的NOI省赛题目,具体多少年的我忘了
方法就是枚举
program ex;
var
a,b,c,d,e,f,min:longint;
begin
min:=999999;
for a:=1 to trunc(600/69) do
for b:=1 to trunc(600/39) do
for c:=1 to trunc(600/29) do
if (600-a*69-b*39-c*29<min) and (600-a*69-b*39-c*29>=0) then
begin
min:=600-a*69-b*39-c*29;
d:=a;
e:=b;
f:=c;
end;
writeln('69cm: ',d);
writeln('39cm: ',e);
writeln('29cm: ',f);
writeln('The rest:',min);
end.

结果:
69cm: 6
39cm: 4
29cm: 1
The rest:1