问题求解:求得一个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]:生产计划
程序:
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.