首页 > 试题广场 >

问题描述:工厂在每天的生产中,需要一定数量的零件,同时也可以

[填空题]
问题描述:工厂在每天的生产中,需要一定数量的零件,同时也可以知道每天生产一个零件的生产单价。在N天的生产中,当天生产的零件可以满足当天的需要,若当天用不完,可以放到下一天去使用,但要收取每个零件的保管费,不同的天收取的费用也不相同。
问题求解:求得一个N天的生产计划(即N天中每天应生产零件个数),使总的费用最少。
输入:N(天数N<=29)
每天的需求量(N个整数)
每天生产零件的单价(N个整数)
每天保管零件的单价(N个整数)
输出:每天的生产零件个数(N个整数)
例如:当N=3时,其需要量与费用如下:


第一天

第二天

第三天

需要量

25

15

30

生产单价

20

30

32

保管单价

5

l0

0


生产计划的安排可以有许多方案,如下面的三种:

第一天

第二天

第三天

总的费用

25

15

30

25*20+15*30+30*32=1910

40

0

30

40*20+15*5+30*32=1835

70

0

0

70*20+45*5+30*10=1925


程序说明:
b[n]:存放每天的需求量
c[n]:每天生产零件的单价
d[n]:每天保管零件的单价
e[n]:生产计划
程序:
program exp5;
var
   i,j,n,yu,j0,j1,s:integer;
   b,c,d,e: array[0..30]of integer;
begin
   readln(n);
   for i:=1 to n do readln(b[[i],c[I],d[i]];
   for i:=1 to n do e[i]:=0;
      1     :=10000;
   c[n+2]:=0;
   b[n+1]:=0;
   j0:=1;
   while (j0<=n)do
   begin
      yu:=c[j0]; j1:=j0; s:=b[j0];
      while    2    do
      begin
              3   
          j1:=j1+1;s:=s+b[j1];
      end;
         4    
      j0:=j1+1;
   end;
   for i:=1 to n do      5   
   readln;
end.


这道题你会答吗?花几分钟告诉大家答案吧!