模拟
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
int n = 10, k = 3, m = 3;
fun(10, 3, 3);
}
private static void fun(int n, int k, int m) {
boolean[] isVisited = new boolean[n + 1];
List<Integer> res = new ArrayList<>();
int idx = k, cnt = 1;
while (res.size() < n) {
while (cnt < m) {
while (isVisited[idx]) {
idx = (idx + 1) == n ? n : (idx + 1) % n;
}
cnt++;
idx = (idx + 1) == n ? n : (idx + 1) % n;
}
while (isVisited[idx]) {
idx = (idx + 1) == n ? n : (idx + 1) % n;
}
res.add(idx);
isVisited[idx] = true;
cnt = 1;
}
System.out.println(Arrays.toString(res.toArray()));
}
}