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

2025-03-05 05:37:39
推荐回答(1个)
回答1:

//明显是递推

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.