主题:[讨论]十万火急呀!大牛来帮帮我呀!++++++++50!
梦幻神兵
[专家分:600] 发布于 2006-03-04 17:04:00
穿越沙漠:一辆重型卡车欲穿过1000公里的沙漠,卡车耗油为1升/公里,总载油能力为500升,显然卡车装一次油是过不了沙漠的,因此,司机必须在沿途建立几个贮油点,使卡车顺利穿越沙漠,试问司机应如何建立这些贮油点?每个贮油点应存放多少汽油,才能使卡车消耗最少的汽油穿越沙漠。编程求出所需最少的汽油数量。会的告诉我!+++++30只要回帖就加![em1][em4]
回复列表 (共5个回复)
沙发
47 [专家分:590] 发布于 2006-03-05 09:49:00
恩这个题是一道递归的例题
是需要归纳出每个节点的计算通式的
说不是太清
建议你去看一下《实用算法的分析与程序设计》
讲解很详细
在
http://www.zjhyzx.net/Soft/ShowSoft.asp?SoftID=23
可以下载到电子版
再找个浏览器就能看了
板凳
编程黑客 [专家分:1660] 发布于 2006-03-14 22:25:00
不会
3 楼
blackmark [专家分:210] 发布于 2006-03-18 20:41:00
倒起来考虑~!!
用倒推法
~~!!
4 楼
Iしovのyou [专家分:10] 发布于 2006-03-22 17:15:00
程序 程序
5 楼
caseissamll [专家分:110] 发布于 2006-04-08 18:16:00
var k,i:integer;d,d1:real;dis,oil:packed array[1..1000] of real;
begin
k:=1;d:=500;
dis[1]:=500;oil[1]:=500;
repeat
k:=k+1;d:=d+500/(2*k+1);
dis[k]:=d;
oil[k]:=oil[k-1]+500;
until d>=1000
dis[k]:=1000;
d1:=1000-dis[k-1];
oil[k]:=d1*(2*k+1)+oil[k-1];
for i:=0 to k do writeln(i:3,1000-dis[k-i]:2:6,oil[k-i]:2:6]
end.
我来回复