// B.java
public class B {
// 人的编号:1~N
public static void main(String[] args) {
exec(10, 3);
}
// N:人的数量
// num:报数时喊到即出列的数
static void exec(int N, int num) {
int b[] = new int[N];
int i = -1;
int count = 0;
while (Left(b) != 0) {
if (count == num) {
// 出列的人标记为1
b[i] = 1;
System.out.println(i + 1);
count = 0;
}
if (++i > N - 1) {
i -= N;
}
if (b[i] == 0) {
count++;
}
}
}
// 剩余未出列的人数
static int Left(int a[]) {
int count = 0;
for (int i = 0; i < a.length; i++) {
if (a[i] == 0)
count++;
}
return count;
}
}
运行结果:
3
6
9
2
7
1
8
5
10
4