n个人围成一圈报数,报到某一个数的就出局,问你最后剩下来的人的号码?

lxyd000 2009-10-28 09:21:32
有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));
}
...全文
191 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
sinosinux 2009-10-29
  • 打赏
  • 举报
回复
/* 构造n有个人的链表*/
for(int i = 0; i < n; i++)
ll.add(new Integer(i+1));
/* 从第一个人开始报数,凡报到m的人退出圈子,直到剩一个人 */
while(ll.size() > 1) {
removed = (removed + m) % ll.size();
ll.remove(removed--);
}

51,397

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧