n个人围成一圈报数,报到某一个数的就出局,问你最后剩下来的人的号码?
有n个人围成一圈,顺序编号。从第一个人开始报数,凡报到m的人退出圈子,问最后剩下的人是多少号 ?在网上找了 几个典型的答案 但是没看懂是什么意思 哪位能帮忙解释解释啊 谢谢了。
public static int removeNM(int n, int m) {
LinkedList ll = new LinkedList();
for(int i = 0; i < n; i++)
ll.add(new Integer(i+1));
int removed = -1;
while(ll.size() > 1) {
removed = (removed + m) % ll.size();
ll.remove(removed--);
}
return ((Integer)ll.get(0)).intValue();
}
public static void main(String[] args) {
System.out.println(removeNM(3,2));
}