(pascal编程题)怎么做

来源:百度知道 编辑:UC知道 时间:2024/06/30 15:00:06
http://www.zjtg.cn/itjs/pascal/7.asp
小球从100高处自由落下,着地后又弹回高度的一半再落下。求第20次着地时, 小球共通过多少路程?

program df;
var i:integer;
x,j:real;
begin
j:=100;
x:=0;
i:=0;
while i<>20 do
begin
x:=x+j;
j:=j/2;
if (i+1)<>20 then x:=x+j;
i:=i+1;
end;
writeln(x);
end.

用递归实现,你给的分让我实在没写的欲望…数学原理就是a + 0.5* 2a + 0. 5*0.5*2a +… 楼上的错了,忽略了每次返回地面的距离

program xq;
var i:longint;
s,y:real;
begin
s:=100;
y:=100;
for i:=1 to 20 do
begin
y:=y/2;
s:=s+y*2;
if i=20 then s:=s-y;
end;
writeln(s);
end.

物理题吧!