据说著名犹太历史学家Josephus有过以下的故事:
在罗马人占领乔塔帕特後,39个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被人抓到,于是决定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第3人该人就必须自杀,然后再由下一个重新报数,直到所有人都自杀身亡为止。
然而Josephus和他的朋友并不想遵从,Josephus要他的朋友先假装遵从,他将朋友与自己安排在第16个与第31个位置,于是逃过了这场死亡游戏。
用循环列表的数据结构是比较容易实现的,下面是我曾经用数组的方法(纯粹是为了玩一玩)完成的C程序,应该在实现上还可以有改进。
 1 #include <stdio.h>
 2
 3 int main()
 4 {
 5     int N = 41;
 6     int i = 1;
 7     int m = 3;
 8     int MAX = N;
 9     int k, t;
10     int a[100], b[100];
11     for (k = 0; k < N; k++)
12     {
13         b[k] = k + 1;
14     }
15     for(k = 0; k < MAX; k++)
16     {
17         t = (i + m - 1) % N;
18         if (t - 1 < 0)
19         {
20             a[k] = b[N-1];
21             i = N;
22         }
23         else
24         {
25             a[k] = b[t-1];
26             i = t;
27             while (t < N)
28             {
29                 b[t-1] = b[t];
30                 t++;
31             }
32         }
33         N = N - 1;
34         printf("%i ", a[k]);
35     }
36     printf("\n");
37     return 0;
38 }

转载于:https://www.cnblogs.com/toorist/p/4845304.html

C/C++02: Josephus问题相关推荐

  1. 零起点学算法02——输出简单的句子

    零起点学算法02--输出简单的句子 Description 会输出Hello World!了,那换个句子也会吧? Input 没有输入 Output 现在要求你输出下面红色的字  Nice to me ...

  2. [转载] 杜拉拉升职记——02 单相思与性骚扰

    来源:李可. 杜拉拉升职记(第三版). 西安: 陕西师范大学出版社, 2010, 5. 02  单相思与性骚扰的区别 拉拉注意到,DB所有经理办公室沿走道的这一面,都是用大块的玻璃来做间隔墙. 拉拉问 ...

  3. tesseract-ocr3.02字符识别过程操作步骤

    1.  从http://code.google.com/p/tesseract-ocr/downloads/list下载tesseract-ocr-3.02-vs2008.tesseract-ocr- ...

  4. 指针02 - 零基础入门学习C语言42

    第八章:指针02 让编程改变世界 Change the world by program 对"&"和"*"运算符再做些说明 如果已执行了语句 point ...

  5. Josephus Problem的详细算法及其Python, Java语言的实现

      笔者昨天看电视,偶尔看到一集讲述古罗马人与犹太人的战争--马萨达战争,深为震撼,有兴趣的同学可以移步:http://finance.ifeng.com/a/20170627/15491157_0. ...

  6. 【青少年编程竞赛交流】02月份微信图文索引

    02月份微信图文索引 由于"组队学习"这个公众号的功能主要是组织Datawhale社群中的学习者们每个月的组队学习,所以,我另外新建了这个微信公众号"青少年编程竞赛交流& ...

  7. 深入浅出Pytorch:02 PyTorch基础知识

    深入浅出Pytorch 02 PyTorch基础知识 内容属性:深度学习(实践)专题 航路开辟者:李嘉骐.牛志康.刘洋.陈安东 领航员:叶志雄 航海士:李嘉骐.牛志康.刘洋.陈安东 开源内容:http ...

  8. 第02章 PyTorch基础知识

    文章目录 第02章 Pytorch基础知识 2.1 张量 2.2 自动求导 2.3 并行计算简介 2.3.1 为什么要做并行计算 2.3.2 CUDA是个啥 2.3.3 做并行的方法 补充:通过股票数 ...

  9. 数据结构与算法:02 C#语言基本语法结构

    02 C#语言基本语法结构 知识结构: 1.数据类型 第一种分类: 简单数据类型:byte.short.int.long.float.double.char.bool 组合数据类型:struct.en ...

最新文章

  1. 30 元素可视区client系列
  2. vue 相同的id不合并_vue中key的作用
  3. SAP MM 物料库存转固定资产业务操作以及相关财务凭证
  4. android 命令行创建模拟器,在命令行创建、删除和浏览AVD、使用android模拟器
  5. java虚拟机通俗_JAVA虚拟机的通俗解释
  6. el-drawer点击的时候为什么有边框_别再纠结背景墙边框的材料,这4种线条边框便宜又实用,简洁大方...
  7. 删除python的注册表_Python操作注册表详细步骤介绍
  8. php 修改上传文件大小 (max_execution_time post_max_size)
  9. MySQL | 数据库的六种约束、表的关系、三大范式
  10. Linux 文件系统编程之系统调用和标准I/O库
  11. Word2010-页眉中字数未满但自动换行
  12. 性能之巅:定位和优化程序CPU、内存、IO瓶颈
  13. h710阵列卡支持最大硬盘_ORICO推爆品五盘位硬盘柜,一拖五最大支持80TB,你会买吗?...
  14. 诺顿误杀事件造成“疑似病毒大爆发”恐慌
  15. 信号分析与处理 基于matlab认识实验
  16. 数据库优化---空间换时间优化
  17. .7z.001 这种让人头疼的分卷格式
  18. win10系统的字体突然变成繁体字,如何修改回简体中文
  19. 功能最全面 体验更极致 小兴看看mini升级版9月19日首发
  20. Nginx + uWSGI + Python + Django构建必应高清壁纸站

热门文章

  1. mysql的内外连接_MYSQL的内外连接
  2. 可以获得索引值码_SEO优化细节,怎样优化才能让网站获得更好的排名?
  3. 华为手机怎么强制关机_华为手机电源键这么神?你只拿来锁屏关机,白浪费这么强的黑科技...
  4. matlab暂态信号,MATLAB6在电力暂态波形仿真实现中的应用
  5. python自定义函数func_python自定义函数与面向对象
  6. 根据工序画出aoe网_这些金刚网纱窗竟然含“毒”!选错就得病
  7. 《SpringCloud超级入门》Eureka自我保护模式和InstanceID的配置《十四》
  8. mysql sql高级应用程序_mysql-sql高级应用
  9. 区分错误类型_牛鹭学院:Bug类型解析及其常见实例介绍
  10. reset java_Java PushbackReader reset()用法及代码示例