回 帖 发 新 帖 刷新版面

主题:[讨论]十万火急呀!大牛来帮帮我呀!++++++++50!

穿越沙漠:一辆重型卡车欲穿过1000公里的沙漠,卡车耗油为1升/公里,总载油能力为500升,显然卡车装一次油是过不了沙漠的,因此,司机必须在沿途建立几个贮油点,使卡车顺利穿越沙漠,试问司机应如何建立这些贮油点?每个贮油点应存放多少汽油,才能使卡车消耗最少的汽油穿越沙漠。编程求出所需最少的汽油数量。会的告诉我!+++++30只要回帖就加![em1][em4]

回复列表 (共5个回复)

沙发

恩这个题是一道递归的例题
是需要归纳出每个节点的计算通式的
说不是太清
建议你去看一下《实用算法的分析与程序设计》
讲解很详细

http://www.zjhyzx.net/Soft/ShowSoft.asp?SoftID=23
可以下载到电子版
再找个浏览器就能看了

板凳


不会

3 楼

倒起来考虑~!!
 用倒推法
~~!!

4 楼

程序  程序

5 楼


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.

我来回复

您尚未登录,请登录后再回复。点此登录或注册