代码:

#include<iostream>
#include<stdlib.h>
using namespace std;
typedef int datatype;
typedef int Status;
typedef int ElemType;
typedef  struct  Lnode
{   ElemType  data;
struct   Lnode  *next;
}LNode;
int n;
LNode  *create_LinkList(void)
{    int data ;int i;
LNode *head, *p;         /*  p指向当前结点  */
head= (LNode  *) malloc( sizeof(LNode));
head->next=NULL;         /*  创建链表的表头结点head  */ cout<<"请输入囚犯总人数: ";cin>>n;
for(i=n;i>0;i--)
{data=i;p= (LNode  *)malloc(sizeof(LNode));p->data=data;p->next=head->next ;  head->next=p ; }
cout<<"成功建立囚犯编号: ";
return (head);
}
void X(LNode *L){int i;
LNode *p,*q;
p= (LNode  *)malloc(sizeof(LNode));
q= (LNode  *)malloc(sizeof(LNode));
p=L;
q=p->next;
while(p->next!=NULL){cout<<q->data<<"  ";p=q;q=q->next;}
cout<<endl;
}
void  Delete_LinkList(LNode *L,int i)/*  删除以L为头结点的单链表中的第i个结点  */
{  int  j=0;  LNode *p,*q;
p=L;  q=L->next;
while  ( p->next!=NULL&& j<i-1)
{  p=q;  q=q->next;  j++;  }
if  (!p->next || j>i-1) cout<<"i太大或i为0!!\n ";
/*长度为n的链表的合法删除位置是1到n*/
else
{  p->next=q->next;   free(q);    }
}void  G(LNode *L,int i)
{
int j=1;
LNode *p,*q;p= (LNode  *)malloc(sizeof(LNode));q= (LNode  *)malloc(sizeof(LNode));p=L;q=p->next;
while(p->next!=NULL)
{if(j%i==0){cout<<" "<<q->data<<"  ";p=q;q=q->next;j++;/*Delete_LinkList(L,j);*/cout<<"dstfhj";}else {p=q;q=q->next;j++;}
}
}
void main()
{   int m;Lnode s;Lnode L; L=*create_LinkList();X(&L);cout<<"asds请输入第几个囚犯会被处决: ";cin>>m; cout<<"被处决囚犯序号: ";G(&L,m);//Delete_LinkList(&L,m);s.data=et_Elemcout<<s.data;
}

约瑟夫问题:

n个人排成一圈。从某个人开始,按顺时针方向依次编号。从编号为1的人开始顺时针“一二一”报数,报到2的人退出圈子。这样不断循环下去,圈子里的人将不断减少。由于人的个数是有限的,因此最终会剩下一个人。试问最后剩下的人最开始的编号。
输入格式 Input Format
一个正整数n,表示人的个数。输入数据保证数字n不超过100位。
输出格式 Output Format
一个正整数。它表示经过“一二一”报数后最后剩下的人的编号。
样例输入 Sample Input
9
样例输出 Sample Output
3
时间限制 Time Limitation
各个测试点1s
注释 Hint
样例说明
当n=9时,退出圈子的人的编号依次为:
2 4 6 8 1 5 9 7
最后剩下的人编号为3
初见这道题,可能会想到模拟。可是数据实在太大啦!!
我们先拿手来算,可知n分别为1,2,3,4,5,6,7,8...时的结果是1,1,3,1,3,5,7,1...
有如下规律:从1到下一个1为一组,每一组中都是从1开始递增的奇数,且每组元素的个数分别为1,2,4...
这样就好弄了!!

约瑟夫死亡游戏算法问题相关推荐

  1. java实现约瑟夫环完整算法_Java简单实现约瑟夫环算法示例

    Java简单实现约瑟夫环算法示例 发布时间:2020-10-01 14:19:56 来源:脚本之家 阅读:104 作者:perfect亮 本文实例讲述了Java简单实现约瑟夫环算法.分享给大家供大家参 ...

  2. 约瑟夫环算法(JAVA)

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

  3. c语言循环链表约瑟夫问题的时间复杂度,用单向循环链表解决约瑟夫问题算法优劣性分析.doc...

    用单向循环链表解决约瑟夫问题算法优劣性分析 用单向循环链表解决约瑟夫问题算法优劣性分析 摘要: 首先由简单问题引入约瑟夫问题,然后用单向循环链表解决约瑟夫问题,最后对模拟方法及数学方法的优劣性进行分析 ...

  4. C语言幸运星课程设计,涉及约瑟夫环算法,多个版本

    C语言幸运星课程设计,涉及约瑟夫环算法,多个版本,放于多个分支. 使用及转载请标明出处(最好点个赞及star哈哈) 版本1使用链表,函数传参 版本2使用链表,空参函数,全局变量 版本3使用动态数组 码 ...

  5. 约瑟夫环 java代码_约瑟夫环算法的Java实现代码

    相信大家都知道这是一个的算法问题,约瑟夫环的c语言实现是利用了指针链表的形式,java实现呢,我的这个是用了内部类. 算法描述:n个人围成一圈,每人有一个各不相同的编号,选择一个人作为起点,然后顺时针 ...

  6. 约瑟夫环算法问题(C++)

    约瑟夫环算法问题 什么是约瑟夫环 约瑟夫环算法题 什么是约瑟夫环 约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知 n 个人(以编号1,2,3-n分别表示)围坐在一张圆桌周围.从编号为 k 的人开始报 ...

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

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

  8. 一文读懂约瑟夫环算法 | 原力计划

    作者 | 扬帆向海 责编 | 王晓曼 出品 | CSDN博客 问题描述 约瑟夫问题(有时也称为约瑟夫斯置换,是一个出现在计算机科学和数学中的问题.在计算机编程的算法中,类似问题又称为约瑟夫环.又称&q ...

  9. 约瑟夫问题(算法设计与C代码实现)

    约瑟夫问题 看到了这里,想必大家都已知道约瑟夫问题,这里就不多赘述,只是简单回顾一下问题的描述. "据说著名犹太历史学家Josephus有过以下的故事: 在罗马人占领乔塔帕特后,39个犹太人 ...

最新文章

  1. qt mysql now()_Qt + mysql 運用 (項目一)
  2. python写excel文件出错_【求教】xlutils修改中文Excel文件出错
  3. 有趣的css图形实现
  4. 街舞中的rolling机器人_REMEMBER街舞培训中心2020年元旦汇演
  5. 开红字信息表的时候服务器为空,对方开了红字信息表但系统没有显示怎么办
  6. 滴滴升级“极速拼车”:未拼成可享折扣 拼成更便宜
  7. JAVA 面试高频提问知识点之:SET、LIST 和 MAP 的区别
  8. Truffle测试框架
  9. 计算机中那些事儿(四):我眼中的虚拟技术
  10. C 获得程序执行时间
  11. 海淀区第九届单片机竞赛获奖名单_第十二届程序设计竞赛暨ACM选拔赛获奖名单...
  12. 支持向量机c++实现
  13. HTML特殊字符显示
  14. 原生js之同级元素添加移除class
  15. Matplotlib 入门(详看注释)
  16. Mac OS X从10.7升级到Mountain Lion OS X10.8
  17. 【指纹识别】基于matlab GUI指纹识别【含Matlab源码 586期】
  18. gwr模型matlab代码,干货分享 | 地理加权回归GWR2020新版开源软件下载和使用
  19. b站视频解析php,B站视频解析套路
  20. 均匀分布的期望和方差的推导_概率论中均匀分布的数学期望和方差该怎么求啊?...

热门文章

  1. Google、微软、阿里、腾讯、百度这些大公司在GitHub上开源投入排名分析 | CSDN原力计划...
  2. TensorFlow中的计算图
  3. 四大指标超现有模型!少样本的无监督图像翻译效果逆天| 技术头条
  4. AI做不了“真”3D图像?试试Google的新生成模型
  5. 如何为模型选择合适的损失函数?所有ML学习者应该知道的5种回归损失函数
  6. 百度开源,分布式配置中心
  7. IDEA 解决 Java8 的数据流问题,用过的都说好!!!
  8. 服务压测发现怪异现象,一顿排查,揪出“TIME_WAIT”这个内鬼
  9. 线上出现死锁怎么解决?
  10. 再见,HttpClient!再见,Okhttp!