算法求助!分西瓜问题(9分)

  • 主题发起人 主题发起人 刘亚林
  • 开始时间 开始时间

刘亚林

Unregistered / Unconfirmed
GUEST, unregistred user!
某机关组织游泳比赛。将一堆西瓜分给前三名,把该堆西瓜中的一半又半个西瓜奖给第一名;剩下的一半又半个西瓜给第二名;把最后剩下的一半又半个西瓜给第三名,但每次分时并没切开任何一个西瓜,且刚好西瓜分完。问前三名各分到多少个西瓜
 
再问一件事,有没有哪位有《pascal程序设计》郑启华。的习题解答?
 
function a(b: integer): integer;
begin
result:=2*b+1;
end;

watermelon:=0;
for i:=1 to 3 do
watermelon:=a(watermelon);

watermelon就是西瓜总数。
 
procedure TForm1.ShareWatermelon(total, men: integer)
//total:西瓜数,men:人数
var
a: array[1..100] of integer;
I: integer;
S: string;
J: integer;
begin

S := '';
J := 0;
for I := 1 to men do
begin
a := (total + 1) div 2;
S := Format('第%d人分%d个西瓜',[I, a]);
ShowMessage(S);
J := Total - a;
Total := Total - J;
end;

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
ShareWaterMelon(StrToInt(Edit1.Text), StrToInt(Edit2.Text));
end;
 
第三名 1
第二名 3
第一名 7
不知道有没有别的解
 
一,4
二,2
三,1
 
wbo 的是对的。

还有没有其它的算法?
晕,高手是不是都不怎么喜欢回贴的?还是嫌分太少?
 
wbo的可能要理解一下才看得懂,我想还有没有更通俗易懂一点的算法?
 
抱歉
我写错了我写的是每次分之前生于的西瓜数,你的是对的
 
:)

呵呵,我是解方程解出来的~~
 
wbo的算法我认为有点难懂,也可能是我笨~~反正我是画了图之后才理解的

不知道还有没有其它的算法~~
 
实际上不用那么麻烦,这好像是小学数学要林匹克题,我记得因为我在上初中
实际上我的少算了一步
第三名 1
第二名 3-1=2
第一名 7-3=4
 
sunjialong

你这是怎么算来的?
 
某机关组织游泳比赛。将一堆西瓜分给前三名,把该堆西瓜中的一半又半个西瓜奖给第一名;剩下的一半又半个西瓜给第二名;把最后剩下的一半又半个西瓜给第三名,但每次分时并没切开任何一个西瓜,且刚好西瓜分完。问前三名各分到多少个西瓜
因为最后一个都不剩下,那么第三名得到的 最后剩下的一半 与 半个西瓜 是相等的
则第三名得到1个
(1+0.5)*2=3 第二名和第三名得到的总和
(3+0.5)*2=7 第一名和第二名和第三名得到的总和
 
呵呵~~对了
 
多人接受答案了。
 

Similar threads

回复
0
查看
1K
不得闲
D
回复
0
查看
928
DelphiTeacher的专栏
D
D
回复
0
查看
883
DelphiTeacher的专栏
D
D
回复
0
查看
856
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部