约瑟夫问题是个有名的问题:N个人围成一圈。从第一个開始报数,第M个将被杀掉,最后剩下一个,其余人都将被杀掉。

比如N=6,M=5。被杀掉的人的序号为5,4,6。2。3。最后剩下1号。

  假定在圈子里前K个为好人,后K个为坏人。你的任务是确定这种最少M,使得全部的坏人在第一个好人之前被杀掉。

//----数学中有乘法口诀。

。那仅仅是工具。我们都非常熟悉。

//----C++中有一些主要的程序。也仅仅是工具。我们必须像熟悉乘法口诀一样去熟悉这些程序。

//----非常基础的一些东西,必须熟练。。。

#include<iostream>
class link;
using namespace std;
class node{friend class link;
public:node():next(NULL){}node(int value):data(value),next(NULL){}
private:int data;node *next;
};
class link{
public:link(int x,int y,int z):n(x),s(y),m(z){}node *createlink(){node *p,*r;node *q;r=p=new node;for(int i=1;i<=n;++i){q=new node;q->data=i;r->next=q;r=q;}r->next=p->next;return p;}node *jusefu(node *startnode){node *p=startnode->next;node *q;for(int i=1;i<s;++i)p=p->next;//让p指向開始数数的位置,让q指向须要删除结点的位置的前一个位置q=p->next;while(q->next!=p){q=q->next;}while(p->next!=p){for(int j=1;j<m;++j){//node *tmp;q=p;p=p->next;}q->next=p->next;cout<<"将要删除的号码是"<<p->data<<endl;delete p;p=q->next;}cout<<"留下来的人数的号码为"<<p->data<<endl;return p;}
private:int n;int s;int m;};
int main()
{   int i,j,k;cout<<"输入总数,開始位置。每次循环人数"<<endl;cin>>i>>j>>k;link linklist(i,j,k);node *head=linklist.createlink();node *lastnode=linklist.jusefu(head);system("pause");return 0;
}

用C++实现约瑟夫环的问题相关推荐

  1. python中约瑟夫环程序_Python实现约瑟夫环问题的方法

    本文实例讲述了Python实现约瑟夫环问题的方法.分享给大家供大家参考,具体如下: 题目:0,1,...,n-1这n个数字排成一个圆圈,从数字0开始每次从这个圆圈里删除第m个数字.求出这个圆圈里剩下的 ...

  2. 约瑟夫环问题的两种解法(详解)

    约瑟夫环问题的两种解法(详解) 题目: Josephus有过的故事:39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓.于是决定了自杀方式,41个人排成一个圆 ...

  3. python约瑟夫环问题给十个学生编号报到3者出列_趣味算法--约瑟夫环问题(示例代码)...

    问题描述 已知n个人(以编号1,2,3,...,n分别表示)围坐在一张圆桌上.指定编号为k的人开始从1报数,数到m的那个人出列:出列那个人的下一位又从1开始报数,数到m的那个人出列:以此规则重复下去, ...

  4. 一文读懂约瑟夫环算法

    2020-05-25 20:13:40 作者 | 扬帆向海 责编 | 王晓曼 出品 | CSDN博客 问题描述 约瑟夫问题(有时也称为约瑟夫斯置换,是一个出现在计算机科学和数学中的问题.在计算机编程的 ...

  5. 面试题小记:1、统计字符串出现的次数,2、约瑟夫环问题

    今天面到了一个比较有意思的笔试题,先记录一下: 1.字符串类似'aaabbccddd',写个方法得出'3a2b2c3d',即统计字符串出现的个数 $arr = str_split('aaabbccdd ...

  6. java实现简单的约瑟夫环问题(二)

    Josephus(约瑟夫)问题的数学方法 前面的内容都是直接来来自于百度百科,后面才是我对这段话的理解 无论是用链表实现还是用数组实现都有一个共同点:要模拟整个游戏过程,不仅程序写起来比较烦,而且时间 ...

  7. 约瑟夫环双向链表c语言实,双向链表与约瑟夫环代码

    双向链表 //注意:该文件操作的链表为带头结点双向链表,头结点数据为-1 #include #include #include #define OK 1 #define ERROR 0 typedef ...

  8. python解决约瑟夫问题_Python实现约瑟夫环问题的方法

    本文实例讲述了Python实现约瑟夫环问题的方法.分享给大家供大家参考,具体如下: 题目:0,1,...,n-1这n个数字排成一个圆圈,从数字0开始每次从这个圆圈里删除第m个数字.求出这个圆圈里剩下的 ...

  9. 约瑟夫环(约瑟夫问题)求最后出列的人数

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

  10. PHP解决约瑟夫环问题

    PHP解决约瑟夫环问题 一.总结 二.PHP解决约瑟夫环问题 约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围.从编号为k的人开始报数,数到 ...

最新文章

  1. MA5680T跨板聚合
  2. linux(centos) 常用命令
  3. 7-22 堆栈模拟队列 (25 分)
  4. (4)打鸡儿教你Vue.js
  5. 将整型字符串转成整数值
  6. JAVA基础知识要点
  7. 缓冲流、转换流、序列化流、打印流
  8. 2019标杆案例复盘(中):万物互联——智能电子篇
  9. 通过Spring将继承树加载到List中
  10. vue基础(学习官方文档)
  11. c语言程序降低图像分辨率,减少OpenCV读取高分辨率图像的时间示例
  12. 苹果x为什么是android,技术角度分析:这就是苹果手机和安卓手机为什么有差距的主要原因...
  13. SQL 年龄段 品牌分类 分组统计
  14. 正则表达式之量词(重复出现)?、*、+
  15. 一个漂亮的Bootstrap查找查询框,带下拉选择按钮
  16. 正则表达式-2-正则表达式实战1
  17. PHP+Swoole 搭建 Websocket 聊天室
  18. pytorch中的学习率调整函数
  19. LaTex下载 、安装以及使用
  20. PayPal如何提现,PayPal提现手续费是多少?

热门文章

  1. eureka需要替换吗_iOS第三方库Eureka实现定制动画详解(二):万变不离其宗-Row组件...
  2. 全国计算机表演赛登录,科技支教 妙笔生辉----第十六届全国“六一”儿童节计算机表演赛...
  3. gcc 编译 java,编译lineage,gcc的版本问题
  4. 自定义报错返回_Keras编写自定义层--以GroupNormalization为例
  5. python动态规划详解_经典动态规划例题整理(Python版)
  6. mysql占用资源最小的语句_MySQL一个语句查出各种整形占用字节数及最大最小值的实例...
  7. * core-js/modules/es6.array.fill in ./node_modules/_cache-loader@2.0.1@cache-loader/dist/cjs.js??ref
  8. 微信小程序实现滑动tab切换和点击tab切换并显示相应的数据(附源代码)
  9. iOS UIButton 文字图片上下左右布局
  10. wireshark-wincap安装问题