C语言代码实现: #include <stdio.h> #include <malloc.h> #include <stdlib.h> /** 循环链表实现约瑟夫环 41个人排成一个圆圈,然后从1-3报数,报到3的人自杀,依次类推,直到剩下最后两个人可以存活下来,这两个人分别是第16个位置和第31个 ...
分类:
其他好文 时间:
2021-02-19 12:57:04
阅读次数:
0
约瑟夫问题: #include <stdio.h> #include <stdlib.h> typedef struct node{ int data; struct node * next; }node; //创建一个有n个结点的循环链表 node * initLink(int n){ node ...
分类:
其他好文 时间:
2020-08-20 18:19:30
阅读次数:
49
本文是通过例子学习C++的第七篇,通过这个例子可以快速入门c++相关的语法。 1.问题描述 回顾一下约瑟夫环问题: n 个人围坐在一个圆桌周围,现在从第 s 个人开始报数,数到第 m 个人,让他出局;然后从出局的下一个人重新开始报数,数到第 m 个人,再让他出局......,如此反复直到所有人全部出 ...
分类:
编程语言 时间:
2020-01-19 09:35:09
阅读次数:
110
1 #include<bits/stdc++.h> 2 using namespace std; 3 #define sc scanf 4 #define pr printf 5 6 typedef struct LNode{ 7 int data; 8 struct LNode *next; 9 ... ...
分类:
其他好文 时间:
2019-10-05 14:25:44
阅读次数:
132
约瑟夫环的问题和种类有很多,这是一道基本的约瑟夫环问题,通过单向循环链表实现模拟此过程。 代码如下: ...
分类:
其他好文 时间:
2019-04-09 20:19:47
阅读次数:
180
代码 include using namespace std; const int maxn=1000; int main(){ string name[maxn];//创建字符串数组保持参与人的名字 int p[maxn]; int n,i; cin n; for(i=0;i name[i]; i ...
分类:
编程语言 时间:
2018-10-07 15:36:28
阅读次数:
170
题目 41个人排成一个圆圈,由第1个人 开始报数,每报数到第3人,该人就必须自杀,然后再由下一个重新报数,直到所有人都自杀身亡为止。约瑟夫与朋友在第16与第31个位置,于是活了下来。请用单向环形链表描述该结构并呈现整个自杀过程。 设计 首先要设计一个节点模型 遍历并用 last 节点做成一个单向线性 ...
分类:
其他好文 时间:
2018-09-23 22:39:10
阅读次数:
330
最近在看关于约瑟夫环的一些解决思路,发现了一种很有创意的解法,记录下,用来复习。 这种方式不会破坏原始数组,非常巧妙的用boolean去标记对应数字,虽然消耗了额外的空间,但是是非常有创意的实现方式,可读性很高。 ...
分类:
其他好文 时间:
2018-09-04 13:45:11
阅读次数:
122
我们首先来看一下约瑟夫环问题: 给定m个人,m个人围成一圈,在给定一个数n,从m个人中的第一个人每第n个人便将其除去,求被最后一个出去的人的编号。 思路: 建立一个长度为m+1的数组,将其的内容初始化为0至m 我们设置变量i与j,i代表数组元素的下表,因为我设置的数组长度为m+1,所以数组下标就为每 ...
分类:
编程语言 时间:
2018-05-23 00:08:17
阅读次数:
202