总共3中解决方法,1、数学推导,2、使用ArrayList递归解决,3、使用首位相连的LinkedList解决 import java.util.ArrayList; /** * 约瑟夫环问题 * 需求:n个人围成一圈,从第一个人开始报数,数到K的人出局,然后从下一个人接着报数,直到最后一个人,求最 ...
分类:
编程语言 时间:
2016-10-02 19:17:19
阅读次数:
270
算法:约瑟夫环问题 【写在前面】 由于本人天生驽钝,所写代码和描述可能不堪入目,高手请移步。但是我一直在努力记录一下有用的知识点,给自己给朋友用,只是希望对大家有帮助。 【问题描述】 约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从第一 ...
分类:
编程语言 时间:
2016-10-02 00:34:05
阅读次数:
140
恢复内容开始 问题描述:约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列,求最后出列的人的原始编号。 ...
分类:
其他好文 时间:
2016-09-29 07:41:32
阅读次数:
126
约瑟夫环:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列 知识补充: List接口主要有两个实现类,ArrayList和LinkedList类。 ...
分类:
编程语言 时间:
2016-09-19 22:07:09
阅读次数:
191
/* 总结:就是建立一个循环单链表,再按循环取余删除节点: 注意:1.未给指针变量s分配动态内存时,让其等于别的分配内存的指针(q)相当于 把 s指向其内存,并不能建立链接。 2.此链表带头节点 遇到问题 :1.在选择人的时候遇到了阻碍(不知如何选) 2.设置头节点,循环(难点) */#includ ...
分类:
其他好文 时间:
2016-09-14 01:56:18
阅读次数:
160
约瑟夫环比较经典了 已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。 测试过的完整实现代码: ...
分类:
编程语言 时间:
2016-09-11 18:42:00
阅读次数:
161
约瑟夫环运作如下: 1、一群人围在一起坐成环状(如:人数N) 2、从某个编号开始报数(如:K 默认1) 3、数到某个数(如:M)的时候,此人出列,下一个人重新报数 4、一直循环,直到所有人出列,约瑟夫环结束。 #include<stdio.h> #include<malloc.h>//链表节点结构 ...
分类:
其他好文 时间:
2016-09-07 22:23:46
阅读次数:
123
问题:每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的 ...
分类:
其他好文 时间:
2016-09-02 13:17:21
阅读次数:
136
题目描述 约瑟夫问题是一个非常著名的趣题,即由n个人坐成一圈,按顺时针由1开始给他们编号。然后由第一个人开始报数,数到m的人出局。现在需要求的是最后一个出局的人的编号。 给定两个int n和m,代表游戏的人数。请返回最后一个出局的人的编号。保证n和m小于等于1000。 测试样例: 5 3 返回:4 ...
分类:
其他好文 时间:
2016-08-26 13:40:11
阅读次数:
250