不是VIP会员,不能显示答案

题目解答

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

程序说明:
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;
    c[n+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 (yu+d[j1]<c[j1+1]) do
      begin
        yu:=yu+d[j1] ; j1:=j1+1;  s:=s+b[j1];
      end;
  e[j0]:=s ; j0:=j1+1;
end;
        for i:=1 to n do write(e[I]:4) ;
        readln;
end.
考点:
分析:
解答:
评论:
老师: