题目描述
已知n个人(以编号1,2,3...n分别表示)按既定的方向围坐在一张圆桌周围。从编号为k的人开始按既定方向报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列
输入
n, k, m (each in one line)
输出
the counting-out sequence, each number in one line
样例输入
9
1
5
样例输出
5
1
7
4
3
6
9
2
8
import java.util.Scanner; class Main { static int a[],m,k,n; public static void main(String[] args) { Scanner sc = new Scanner(System.in); n = sc.nextInt(); m = sc.nextInt(); k = sc.nextInt(); a = new int[n+1]; for (int i = 1 ; i < a.length; i++) { a[i] = 1; } for (int i = 1; i < a.length; i++) { int t=f(m-1); a[t] = 0; m = t; System.out.println(t); } } private static int f(int m2) { for (int i = 0; i < k; i++) { do{ m2 = m2%n +1; }while(a[m2]!=1); } return m2; } }