高悬赏free pascal题目,大师过来看一下。。

15、A,B,C,D,E五个人合伙夜间捕鱼,凌晨时都疲惫不堪,各自在河边的树丛中找地方睡着了,日上三竿,E第一个醒来,他将鱼数了数,平分成五分,把多余的一条扔进河中,拿走... 15、A,B,C,D,E五个人合伙夜间捕鱼,凌晨时都疲惫不堪,各自在河边的树丛中找地 方睡着了,日上三竿,E第一个醒来,他将鱼数了数,平分成五分,把多余的一条扔进河中, 拿走一份回家去了,D第二个醒来,他并不知道有人已经走了,照样将鱼平分成五分,又扔 掉多余的一条,拿走自己的一份,接着C,B,A依次醒来,也都按同样的办法分鱼(平分成 五份,扔掉多余的一条,拿走自己的一份),问五人至少合伙捕到多少条鱼。也许你能用数学办法推出鱼的条数,但我们的要求你编出一个程序,让计算机帮你算出鱼的总数。
请用循环语句,不要用function和数组。这道题比较复杂,最好能注释一下。。
展开
 我来答
szwpvz
推荐于2016-01-23 · TA获得超过640个赞
知道小有建树答主
回答量:374
采纳率:0%
帮助的人:254万
展开全部

//明显是递推

var

  s,i,j:longint;

  candiv:boolean;

begin

  for j:=1 to 100 do begin

  //这里j的循环大了点。。不过也无所谓,后来只要找到了就直接退出了

    s:=j;

    candiv:=true;

    for i:=1 to 5 do

      if s mod 4=0 then s:=s div 4{或 shl 2,也一样}*5+1

      //每次每人拿走的都是当前鱼条数减1的1/5,可以简单推出

      else begin//不能整除,退出当前循环

        candiv:=false;

        break;

      end;

    if candiv then begin

      writeln(s);

      break;

    end;

  end;

end.

更多追问追答
追问
错了啊,,,,

又是你,额

您看一下这个程序,解释一下OK?

因为字数有限,我发照片了,答案等于3121,对不对啊?

本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式