题目描述
n个人围成一圈,从第一个人开始报数,数到m的人出列,再由下一个人重新从1开始报数,数到m的人再出圈,依次类推,直到所有的人都出圈,请输出依次出圈人的编号。样例输入
10 3样例输出
3 6 9 2 7 1 8 5 10 4思路
O(nm)还在冥思苦想要模拟的小伙伴们要哭了,这道题早已有公式啦~~~但是这道题不能直接输出最后那个人,要输出顺序=_=。var a:array[1..100] of longint; n,m,p,i,j:longint;begin readln(n,m); for i:=1 to n-1 do a[i]:=i+1; a[n]:=1; p:=n; for i:=1 to n do begin for j:=1 to m-1 do p:=a[p]; write(a[p],' '); a[p]:=a[a[p]]; end;end.