// 游戏
import java.util.ArrayDeque;
import java.util.Scanner;
public class 游戏 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
ArrayDeque<Integer> q = new ArrayDeque<>(); // 队列
int n = input.nextInt(); // 小朋友的个数
int k = input.nextInt(); // 报到k的倍数的数字 || 报到的数的个位数是k 则淘汰
int index = 1; // 报到的数字
// 添加n个小朋友
for (int i = 1; i <= n ; i++) {
q.add(i);
}
// 一直淘汰到只剩最后一个小朋友
while (q.size() > 1) {
// 满足淘汰条件
if (index % k == 0 || (index - k) % 10 == 0) {
q.poll(); // 移出队列
}else {
q.add(q.poll()); // 将其重新放回队列末
}
index ++; // 报下一个数
}
System.out.print(q.peek()); // 获取仅剩的最后一个小朋友 win!!
}
}
CCF-CSP-201712-2-游戏 JAVA
最新推荐文章于 2024-08-04 11:07:52 发布