约瑟夫问题2
来源:互联网 发布:python清空文件夹内容 编辑:程序博客网 时间:2024/06/07 01:38
题目描述
约瑟夫问题是一个著名的趣题。这里我们稍稍修改一下规则。有n个人站成一列。并从头到尾给他们编号,第一个人编号为1。然后从头开始报数,第一轮依次报1,2,1,2…然后报到2的人出局。接着第二轮再从上一轮最后一个报数的人开始依次报1,2,3,1,2,3…报到2,3的人出局。以此类推直到剩下以后一个人。现在需要求的即是这个人的编号。
给定一个int n,代表游戏的人数。请返回最后一个人的编号
测试样例:
5
返回:5
我的算法:
import java.util.*;class ListNode{ int val; ListNode next; ListNode(int x){ val=x; next=null; } static ListNode createList(int n){ ListNode head=new ListNode(1); ListNode node=head; for(int i=2;i<=n;i++){ node.next=new ListNode(i); node=node.next; } node.next=head; return head; }}public class Joseph { public int getResult(int n) { // write code here ListNode head=ListNode.createList(n); ListNode node=head; int count,m=1; while(node!=node.next){ count=0; if(node.next!=head){ while(node.next!=head&&count!=m){ node.next=node.next.next; count++; } node=(head==node.next)?node:node.next; } else{ m++; head=node; } } return node.val; }}
研究问题需要全面。
0 0
- 约瑟夫问题2
- 2:约瑟夫问题
- 约瑟夫问题2
- 约瑟夫问题2
- 约瑟夫问题、约瑟夫环
- 约瑟夫问题
- 约瑟夫问题
- 约瑟夫问题
- 约瑟夫问题
- 约瑟夫问题
- 约瑟夫问题
- 约瑟夫问题
- 约瑟夫问题
- 约瑟夫问题
- 约瑟夫问题
- 约瑟夫问题
- 约瑟夫问题
- 约瑟夫问题
- CSS 预处理器中的循环
- Modbus rtu CRC===PC上位机和PLC通信 Modbus rtu CRC计算(C++)
- 等价二叉树
- Activity启动模式
- GitLab使用总结
- 约瑟夫问题2
- Display属性学习总结
- 离散基础 (5). 蚂蚁,圆,旅行问题
- 解决Cannot change version of project facet Dynamic web module to 2.5
- Google V8编程详解(四)Context
- Hive的内置数据类型
- 乱码问题之文件,文本文件以及编码
- Chrome adobe flash player不是最新版本
- 关于 devbridge-autocomplete 插件多选操作的实现方法