* 网上有一些实现约瑟夫环代码是有问题的,在给intPers数组赋值时,循环中的条件应该用 i<= total ,否则数组最后一位是0,导致计算结果有误。 ...
【题目】0,1,。。。n排成一个圈,从0开始每次删除第m个数,求圆圈最后个数。 * 【思路】1 用数组模拟圆圈。当数到最后一个数即index==n时,令index==0 重头开始遍历; * 当遇到已经被删除的数时nums[index] 1,跳过继续; * 当走到指定m个数的时候,就将其删除掉,num ...
分类:
其他好文 时间:
2016-06-27 17:09:21
阅读次数:
136
约瑟夫环问题就是从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开
始报数,数到m的那个人又出列;计算出最后留下来的那个人的编号。
下边给出两种方法,顺序表实现和链表实现。
链表的代码:
typedef struct LinkNode
{
DataType data;
struct LinkNode *next;
}LinkNode,*pLinkNode;
typedef...
分类:
其他好文 时间:
2016-06-24 15:00:21
阅读次数:
126
前天用单循环链表实现了约瑟夫环问题,这种方法执行效率高。接下来用另外两种简单的方法实现之。 方法一:使用数组 方法二:使用结构体数组 ...
分类:
编程语言 时间:
2016-06-21 06:33:43
阅读次数:
233
题目描述: 给n个人围城一个环,从m号开始杀,每次隔k-1个人(从上一次被杀的人下一个开始数k下,第k个人被杀),问最后剩下的人是几号。 bc的75场有一个边形,uvalive3882 也是个变形; 思路: 我们可以递推解决,设 f[n] 表示的是第 n 个被杀的人是谁。 首先我们将人从0开始编号, ...
分类:
其他好文 时间:
2016-05-28 20:29:48
阅读次数:
183
约瑟夫环问题 已知 n 个人(n>=1)围坐一圆桌周围,从 1 开始顺序编号,从序号为 1 的人开始报数,顺时针数到 m 的那个人出列。下一个人又从 1 开始报数,数到m 的那个人又出列。依此规则重复下去,直到所有人全部出列。请问最后一个出列的人的初始编号。 要求 输入人数 n,所报数 m,输出最后 ...
分类:
编程语言 时间:
2016-05-26 20:30:22
阅读次数:
777
//约瑟夫环问题
PSListNodeJosephCircle(PSListNodepHead,intM);
//单链表逆置:两种方法都实现:一、三个指针二、尾插发
voidReverseList(PSListNode*pHead);
//单链表排序:冒泡(优化版本)
voidSortList(PSListNodepHead);
//查找链表的倒数第K个结点
PSListNodeFindLastK..
分类:
其他好文 时间:
2016-05-08 01:18:06
阅读次数:
179
尝试表达 本人试着去表达约瑟夫环问题:一群人围成一个圈,作这样的一个游戏,选定一个人作起点以及数数的方向,这个人先数1,到下一个人数2,直到数到游戏规则约定那个数的人,比如是3,数到3的那个人就离开这个游戏;按这样的规则,剩下一个人,游戏就结束,这个人就为赢家。(读者可以试着表达,不认同,直接忽略) ...
分类:
编程语言 时间:
2016-05-03 23:30:06
阅读次数:
214
题目:0,1,2,....n-1这个数字排成一个圆圈,从数字0开始每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。 例如,0,1,2,3,4这5个数字组成一个圆圈,从数字0开始每次删除第三个数字,则删除的前四个数字依次是2,0,4,1因此最后剩下的数字是3.(淡黄色表示将要删除的结 ...
分类:
其他好文 时间:
2016-04-30 11:22:27
阅读次数:
128