1.
本题要求你简单模拟这个过程:N个人排成一圈,从第一个人报数,凡是数到M的人就走出队列(出局),然后继续报数,请按照顺序输出出局的人的编号。
魏远阳提供 可通过老师网站编译:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cnn = new Scanner(System.in);
int N = cnn.nextInt();
int M = cnn.nextInt();
int[] arrNum = new int[N];
int index = 0;
int count = 0;
int j = 0;
int k = 0;
for (int i = 0; i < N; i++) {
arrNum[i] = i + 1;
}
while (count < N) {
j++;
index++;
if (j <= N) {
k = j - 1;
} else {
k = j % N - 1;
if (k < 0) {
k = k + N;
}
}
if (arrNum[k] == 0) {
index--;
} else {
if (index % M == 0) {
count++;
if (count != N) {
System.out.print(arrNum[k] + " ");
} else {
System.out.println(arrNum[k]);
}
arrNum[k] = 0;
}
}
}
}
}
本