设有n个人围成一个圈并接顺时针方向由1~n编号。从第s个人开始进行从1到m报数,报数到第m个人,此人出圈,再从他的下一个人重新开始1到m报数,如此进行下去,直到所有的人都出圈为止。
(选自刘艺的《Delphi程序设计大学教程》)Program joseph;
{$APPTYPE CONSOLE}
uses
  SysUtils;
const
  n=10;
  s=2;
  m=4;
var
  p:array [1..n] of integer;
  I,j,k,ml,sl:integer;
  W:________;
Begin
  Ml:=m;//1到m报数
  Sl:=s;//第s个人开始进行报数
  For I:=1 to n do
     __________;
  for I:=n downto 1 do
  begin
    sl:=___________;
    if sl=0 then ________;
    w:=p[sl];
    p[I]:=w;
  end;
  writeln(inttostr(n)+’个人围成一个圈并接顺时针方向由1开始顺序编号。’);
  writeln(‘从第’+inttostr(s)+’个人开始进行从1到’
+inttostr(m)+’报数,报数到’+inttostr(m)+’的人出圈。’)
  writeln(‘出圈先后顺序如下:’);
  for_________do
    write(p[i]:4);
  readln;
End;