黑马程序员技术交流社区
标题:
约瑟夫环问题
[打印本页]
作者:
wyh2016
时间:
2016-12-17 02:41
标题:
约瑟夫环问题
有时间研究一下算法还是很有意思的,也许用研究来说不合适,算法确实很高深,只能尽能力去学一下了,逆水行舟,以前我是看得懂得,现在连看都看不懂了,来个浅显的。
n个人(编号0~(n-1)),从0开始报数,报到(m-1)的退出,剩下的人继续从0开始报数。求胜利者的编号。
代码实现:
public static void main(String[] args) {
System.out.println(getLucklyNum(8)); } /* * 获取幸运数字 * 1,返回值类型int * 2,参数列表int num */ public static int getLucklyNum(int num) { ArrayList<Integer> list = new ArrayList<>(); //创建集合存储1到num的对象 for(int i = 1; i <= num; i++) { list.add(i); //将1到num存储在集合中 } int count = 1; //用来数数的 for(int i = 0; list.size() != 1; i++) { //只要集合中人数超过1,就不断的数 if(i == list.size()) { //如果i增长到集合最大的索引+1时 i = 0; //重新归零 } if(count %m == 0) { //如果是m的倍数 list.remove(i--); //就去除 } count++; } return list.get(0);//最后剩一个元素 }越来越觉得算法的重要性,可以说出是程序的灵魂,路漫漫其修远兮啊,吾将上下而求索!!
作者:
wyh2016
时间:
2016-12-17 02:43
晕,格式咋没对齐呢
作者:
FAN8210
时间:
2016-12-17 06:40
算法应用到哪里呢
作者:
liuhuan123
时间:
2016-12-17 07:37
表示看不懂。
作者:
xingrong
时间:
2016-12-17 08:10
这算法有什么用?
作者:
hlll
时间:
2016-12-17 08:20
感谢分享,我得来于微信,左右求解而不得其码,
作者:
wyh2016
时间:
2016-12-17 13:22
FAN8210 发表于 2016-12-17 06:40
算法应用到哪里呢
很多应用啊,一个好的算法大大提高程序的运行效率,在思想层面上要意识到,慢慢学习提高咯,可惜我还是个新手,么有入门
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2