m个人围城一圈,从 第一个开始报数,数到n的人出圈,再由下一个开始报数,数到n(n>1)的人出圈,一次循环下去,输出一次出圈人的编号,m的值预先选定,n由键盘输入
參考答案:program ysf;
var a:array[1..10] of integer;
k,i,n,m,t:integer;
begin
read(m,n);
for i:=1 to m do
a[i]:=1;
repeat
i:=(i+1) mod m;k:=k+1;
if a[i]=0 then continue;
if k mod 3=0 then begin a[i]:=0;t:=t+1;end;
until t=m-1;
for i:=1 to m do
if a[i]<>0 then write(i);
end.