pascal题目 深海探测

机器人深海探测是一个极富挑战性的高技术科学研究项目。小雪参加了这一项目的研究工作。
潜水机器人可以携带规定有限的能量。在深海探测过程中,机器人需要消耗一定的能量,但可以在机器人之间通过接触传递能量。用多个潜水机器人接力潜水可以极大地提高潜水机器人的潜水深度。
现给定2个潜水机器人。第1个潜水机器人最多可以携带x1单位的能量,每下潜1米需要消耗能量y1单位。第2个潜水机器人最多可以携带x2单位的能量,每下潜1米需要消耗能量y2单位。开始时2个潜水机器人均处于同一海平面高度为0,并且每个机器人初始时都携带了规定最多的能量。计算用这2个机器人进行不返回的接力深海探测可下潜的最大深度。
输入:每行一个整数,依次为x1,x2,y1,y2;
输出: 这2个登山机器人可下潜的最大深度,精确到小数点后2位。
例如输入:
50
50
0.01
0.01
输出:
7500.00

请用pascal解题,另外,请介绍解题思路。

参考程序:
program jdsd;
const max=100;
var x1,x2:integer;
n,m,i,j,k,l:integer;
y1,y2,h,a,b:real;

begin
write('Input x1,x2:');readln(x1,x2);
write('Input y1,y2:'); readln(y1,y2);
if (x1<1) and (x1>max) and (x2<1) and (x2>max) then
begin writeln('Input error!');halt;end;
k:=trunc(x1 / y1); l:=trunc(x2 / y2);
if k>=l then j:=1 else j:=2;
case j of
1: begin h:=x1/y1;
for i:=1 to l do
begin a:=x2-y2*i;b:=y1*i;
if a=b then h:=i+x1/y1; end;end;
2: begin h:=x2/y2;
for i:=1 to k do
begin a:=x1-y1*i;b:=y2*i;
if a=b then h:=i+x2/y2; end;end;
end;
writeln(h:8:2);
readln
end.

程序应该不是很复杂,我做了这个,用你给出的那些数据输出问题倒是没什么,可用到其它某些数据就有问题了,我暂时只做了这些,太夜了,要睡觉了,明天还要上课呢,你自己可以完善下,多点动脑,会有好处,
你自己分析程序,思路很简单,相信你完全可以理解。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-10-13
你的数据有问题
相似回答