题目:0,1,,n 1这n个数字排成一个圆圈,从数字0开始,每次从这 个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。 例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。 Code: ...
分类:
其他好文 时间:
2020-03-30 19:28:23
阅读次数:
72
经典的约瑟夫环,n个人排成一圈,第m个出队。 递归 code1 非递归 code2 ...
分类:
其他好文 时间:
2020-03-30 11:15:17
阅读次数:
52
问题描述:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为1的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,要求找到最后一个出列的人或者模拟这个过程。 代码: 1 #include <iostream> 2 #inclu ...
分类:
其他好文 时间:
2020-02-26 10:28:28
阅读次数:
126
打表啦 约瑟夫环,处理时下表统一为从0开始更方便! 1 import java.util.Scanner; 2 3 public class poj1012 { 4 public static boolean calc(int k,int m) { 5 boolean flag=true; 6 fo ...
分类:
编程语言 时间:
2020-01-30 19:04:01
阅读次数:
59
最近在CF上补题,补到了一道关于约瑟夫环的题目(听都没听过,原谅我太菜) 就去好好学了一下,不过一般的题目应该是不会让你模拟过的,所以这次就做了一个约瑟夫环公式法变形的集合。 关于约瑟夫环的基础讲解,我个人认为最好的就是这篇了。 首先是最原始的约瑟夫环的题目: https://vjudge.net/ ...
分类:
其他好文 时间:
2020-01-28 12:18:41
阅读次数:
89
约瑟夫环问题算是很经典的题了,估计大家都听说过,然后我就在一次笔试中遇到了,下面我就用 3 种方法来详细讲解一下这道题,最后一种方法学了之后保证让你可以让你装逼。 问题描述:编号为 1 N 的 N 个士兵围坐在一起形成一个圆圈,从编号为 1 的士兵开始依次报数(1,2,3...这样依次报),数到 m ...
分类:
其他好文 时间:
2020-01-23 11:11:50
阅读次数:
118
链表是一种物理存储单元上非连续、非顺序的存储结构。//相较于顺序存储结构:数组。 链表可以是单(向)链表,也可以是双(向)链表。//双向链表可以说是单向链表上的改进,这样子方便对节点的前驱节点进行操作。 *(?*ˊ?ˋ)?*? 也可以是循环链表,顾名思义,就是头尾相连的链表//目前是在做约瑟夫环的链 ...
分类:
其他好文 时间:
2020-01-22 20:01:23
阅读次数:
94
思路: 代码: public class Josepfu { public static void main(String[] args) { // 测试一把看看构建环形链表,和遍历是否ok CircleSingleLinkedList circleSingleLinkedList = new Ci ...
分类:
其他好文 时间:
2020-01-19 15:24:27
阅读次数:
81
本文是通过例子学习C++的第七篇,通过这个例子可以快速入门c++相关的语法。 1.问题描述 回顾一下约瑟夫环问题: n 个人围坐在一个圆桌周围,现在从第 s 个人开始报数,数到第 m 个人,让他出局;然后从出局的下一个人重新开始报数,数到第 m 个人,再让他出局......,如此反复直到所有人全部出 ...
分类:
编程语言 时间:
2020-01-19 09:35:09
阅读次数:
110
问题描述:n个人 ( 编号0~(n-1) ),从0开始报数,报到(m-1)的退出,剩下的人继续从0开始报数。求胜利者的编号。 最直白的方法就是用链表去模拟整个过程就好了,但是这个的复杂度有点高,算不上一个非常优秀的做法。 下面进行推导,看是否能够推出一个通用的公式这样就可以直接得出答案: 初始情况: ...
分类:
其他好文 时间:
2020-01-08 22:39:47
阅读次数:
80