约瑟夫环

约瑟夫环问题的描述是:编号为1,2,…,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个正整数作为报数上限m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为一个新的m值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止。

代码

#include<iostream>
#include<algorithm>
using namespace std;
typedef struct LNode{int data, position;struct LNode *next;
}LNode, *LinkList;
LinkList creation(LinkList &L, int n){L = (LinkList)malloc(sizeof(LNode));L->next = NULL;LinkList p, q;int vim = 1;q = L;for(int i = 0;i < n;i++){p = (LinkList)malloc(sizeof(LNode));cin>>p->data;p->position = vim;vim++;p->next = L->next;q->next = p;q = p;}
}
int main(){int mima, n;cin>>mima>>n;LinkList L;creation(L,n);for(int i = 0;i < n;i++){//*cout<<p->data<<" "<<p->position<<endl;int k = mima%(n-i);LinkList p;p = new LNode;for(int j = 0;j < k;j++){p = L;L = L->next;} cout<<L->position<<" ";mima = L->data;p->next = L->next;L = p;//cout<<L->data<<" "<<p->data<<endl;}return 0;
}

约瑟夫环(循环链表)相关推荐

  1. java约瑟夫环 循环链表_约瑟夫环_循环链表JAVA解答

    编写测试案例 public class Cicle { @Test public void test() { LinkedList linkedList = new LinkedList(); lin ...

  2. 约瑟夫环 单向循环链表实现

    约瑟夫环 已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围.从编号为k的人开始报数,数到m的那个人出列:他的下一个人又从1开始报数,数到m的那个人又出列:依此规律重复下去,直到圆桌周围 ...

  3. 约瑟夫环之循环链表实现

    约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围.从编号为k的人开始报数,数到m的那个人出列:他的下一个人又从1开 始报数,数到m的那个人又出列:依此规律 ...

  4. python约瑟夫环单向循环链表_约瑟夫环的单向循环链表的实现代码

    /************************************************************************* > File Name: JosephCir ...

  5. 循环链表解决约瑟夫环问题

    约瑟夫环问题可以简单的使用数组的方式实现,但是现在我使用循环链表的方法来实现,因为上午看到一道面试题规定使用循环链表解决约瑟夫环问题. 什么是约瑟夫环? "约瑟夫环是一个数学的应用问题:已知 ...

  6. 约瑟夫环-(数组、循环链表、数学)

    约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围.从编号为k的人开始报数,数到m的那个人出列:他的下一个人又从1开始报数,数到m的那个人又出 ...

  7. 《恋上数据结构第1季》单向循环链表、双向循环链表以及约瑟夫环问题

    循环链表(CircleList) 链表的接口设计 单向循环链表 单向循环链表完整源码 双向循环链表 双向循环链表完整源码 双向循环链表解决约瑟夫环问题 如何发挥循环链表的最大威力? 静态链表 数据结构 ...

  8. 约瑟夫环问题(C语言数组和循环链表)

    本文将用两种方式(数组和循环链表)求解约瑟夫环问题,为了更好理解,本文将从洛谷的P1996 约瑟夫问题出发. 题目描述 n个人围成一圈,从第一个人开始报数,数到 m的人出列,再由下一个人重新从1开始报 ...

  9. 约瑟夫环(循环数组循环链表)

    目录 1.循环数组 2.循环链表 题目 1 .一群猴子要选新猴王.新猴王的选择方法是:让N只候选猴子围成一圈,从某位置起顺序编号为1~N号.从第1号开始报数,每轮从1报到3,凡报到3的猴子即退出圈子, ...

  10. 【数据结构与算法】 01 链表 (单链表、双向链表、循环链表、块状链表、头结点、链表反转与排序、约瑟夫环问题)

    一.线性表 1.1 概念与特点 1.2 线性表的存储结构 1.3 常见操作 1.4 应用场景 二.链表 2.1 链表简介 2.2 单向链表(单链表) 2.21 基本概念 2.22 单链表基本操作 2. ...

最新文章

  1. mysql docker 2003_解决远程连接mysql 报 2003错误的问题(docker)
  2. angr学习笔记(3)
  3. php图片上传 thinkphp5,thinkphp5图片上传接口
  4. linux 目录结构+常用命令+压缩命令+vim使用+及一些基础知识(非常好)
  5. List vs IEnumerable vs IQueryable vs ICollection vs IDictionary
  6. (原创)Windows系统后安装ubuntu,无法选择启动ubuntu。
  7. 为什么手机显示系统服务器异常退出游戏,为什么现在进入游戏会提示服务期异常...
  8. OpenGL 头文件,库文件
  9. 《数学之美》知识点详细总结
  10. 大数据--论文读后感
  11. 安卓版本与adb的问题
  12. 基于JCA安全体系的封装
  13. android 流失布局,GitHub - hongyangAndroid/FlowLayout: [不再维护]Android流式布局,支持单选、多选等,适合用于产品标签等。...
  14. 合并两个有序数组(给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。)
  15. 中国移动为挽留用户!推出20元不限量套餐,你会为之买单吗
  16. 如何做一个企业网站制作
  17. 图神经网络(贪心学院)
  18. Python做手写数字识别
  19. 文字图片在一行时候,图片居中问题
  20. Android使用百度地图sdk,实现微信发送位置功能

热门文章

  1. Java五子棋小游戏(源码及效果图)
  2. 超越C++标准库:Boost库导论电子书PDF下载
  3. Intel研究院院长吴甘沙演讲全文:大数据分析师的卓越之道(32PPT珍藏版)
  4. CStdioFile,CFile类,文本文件处理
  5. Eclipse Eclipseme wtk配置JAVA ME开发环境
  6. 真的是厚黑吗·《厚黑学全书》
  7. 计算机win10开机音乐,win10系统电脑开机总是自动播放音乐的恢复步骤
  8. Autonomous Navigation of an Ultrasound Probe Towards Standard Scan Planes with Deep Reinforcement Le
  9. 著名的松下伺服电机之中的1000W应该用那个系列的减速器呢?
  10. Qt 信号与槽 讲解与案例