[Delphi (Object Pascal)] Pascal 解决约瑟夫问题的两种方法 →→→→→进入此内容的聊天室

来自 , 2019-12-31, 写在 Delphi (Object Pascal), 查看 107 次.
URL http://www.code666.cn/view/2639c6bd
  1. Program yueshefu;
  2. Var
  3.   a:array[1..100] of integer;
  4.   n,m,i,j,p:integer;
  5. Begin
  6.   write('Input n,m:');
  7.   readln(n,m);
  8.   for i:=1 to n do
  9.     a[i]:=i;
  10.   p:=1;                     {p用于记录报数的位置}
  11.   for i:=1 to n do
  12.     begin
  13.       j:=0;                  {j用于记录报到的人数}
  14.       while j<m do
  15.         begin
  16.           if a[p]<>0 then j:=j+1;
  17.           if p=n then p:=1 else p:=p+1;  {处理边界情况}
  18.         end;
  19.       if p<>1
  20.            then begin write(a[p-1],' ');a[p-1]:=0;end       {处理边界情况}
  21.            else begin write(a[n],' ');a[n]:=0;end;
  22.     end;
  23. end.
  24.  
  25. //delphi/7185

回复 "Pascal 解决约瑟夫问题的两种方法"

这儿你可以回复上面这条便签

captcha