约瑟夫环
来源:互联网 发布:查看本地数据库ip 编辑:程序博客网 时间:2024/06/05 08:09
题目:0,1,2,3,n-1这n个数字排成一个圆圈,从数字0开始每次从这个圆圈中删除第m个数字。求这个圆圈中剩下的最后一个数字。 这个问题就是约瑟夫环问题。
代码:
/** * 题目:0,1,2,3,n-1这n个数字排成一个圆圈,从数字0开始每次从这个圆圈中删除第m个数字。求这个圆圈中剩下的最后一个数字。 * 这个问题就是约瑟夫环问题。 */package problem2;import java.util.LinkedList;/** * @author Hutongling * * @time:2017年3月31日 上午11:22:05 */public class 圆圈中最后剩下的数字 { static int lastNum(int[] data,int m){ if(data==null || data.length==0 || m<1 || m>data.length) return -1; int result=0; LinkedList<Integer> list=new LinkedList<Integer>(); for(int i=0;i<data.length;i++) list.add(data[i]); int index=0; int count=1; while(list.size()>0){ if(count==m){ result=list.remove(index); count=1; } else { count++; index=(++index)%list.size(); } } return result; } public static void main(String[] args) { int[] data=new int[16]; for(int i=0;i<data.length;i++) data[i]=i; System.out.println("最后剩下的数字是:" + lastNum(data,10)); }}
结果为:
最后剩下的数字是:0
0 0
- 约瑟夫问题、约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- C# 遍历TreeView所有节点
- Deposit 30 Free 50 Promotion(free bonus, sky3888, sky3888 registerdeposit promotion, sky3888 top up)
- 浅析Hadoop中的数据倾斜
- java多态的理解及深入认识
- 文档编号与文档版本号的作用
- 约瑟夫环
- 走线 过孔标准
- 公司邮件签名自定义
- 史上最全Html和CSS布局技巧
- SharedPreferences工具类
- PHP中PDO、mysql配置远程连接、ecshop安装
- SpringBoot学习(四)—AOP切面编程
- jQuery 中 jQuery(function(){})与(function(){})(jQuery) 的区别
- java从入门到弃坑第一天