用free pascla算怎么西瓜?

来源:百度知道 编辑:UC知道 时间:2024/05/30 09:30:53
题目是:某机关组织游泳比赛。将一堆西瓜分给前三名,把该堆西瓜中的一半又半个西瓜奖给第一名;剩下的一半又半个西瓜给第二名;把最后剩下的一半又半个西瓜给第三名,但每次分时并没切开任何一个西瓜,且刚好分完。问前三名各分到多少个西瓜?

var
x,y:real;
i,total:integer;
a:array[1..3] of real;
begin
total:=1;y:=1;i:=0;
repeat
x:=y/2+1/2;
if trunc(x)=x
then
begin
i:=i+1;
a[i]:=x;
y:=y-x;
end
else
begin
total:=total+1;y:=total;i:=0;
end;
until (y=0)and(i=3);
write(a[1]:5:0,a[2]:5:0,a[3]:5:0);

end.