鲁智深吃馒头

据说,鲁智深一天中午匆匆来到开封府大相国寺,想蹭顿饭吃,当时大相国寺有99个和尚,只做了99个馒头。智清长老不愿得罪鲁智深,便把他安排在一个特定位置,之后对所有人说: 从我开始报数(围成一圈),第5个人可以吃到馒头(并退下) ,按此方法,所有和尚都吃到了馒头,唯独鲁智深没有吃上。请问他在那个位置?

[分析]

此问题和N人报数出圈问题实为同一问题, 具体的问题算法在f函数中已作说明.

#include<stdio.h>
#include<math.h>
#define N 100 /* 参加报数的人数 */
#define T 5/* 报数最大值 */
short f(short [], short, short);
int main()
{/* 初始N个人均没吃到馒头 */short monks[N];short i;/* 问题初始化 *//* N个数组元素代表着N个人, 数组下标对应每个人的下标 *//* 数组元素为1表示这个人已经吃到馒头, 为0则表示没吃到馒头 */for(i = 0; i < N; i ++){monks[i] = 0;}printf("下标为%hd的人没吃到馒头.\n", f(monks, N, T));
}
/* 鲁智深吃馒头问题解决方案 */
short f(short m[], short n, short t)
{short i = 0;/* k记录当前有几个人吃到了馒头 */short k = 0;/* p记录当前的报数 */short p = 1;while(1){i

数组的趣味应用-鲁智深吃馒头相关推荐

  1. C语言趣味题——鲁智深吃馒头问题

    题目:鲁智深吃馒头 据说,鲁智深一天中午匆匆来到开封府大相国寺,想蹭顿饭吃,当时大相国寺有99个和尚,只做了99个馒头,智清长老不愿得罪鲁智深,便把他安排在一个特定位置,之后对所有人说,从我开始报数( ...

  2. 和尚吃馒头c语言程序,(八十一)约瑟夫环/鲁智深吃馒头

    问题:99个人,99个馒头,来了一个鲁智深,找个位置把他放进去,然后每逢五的人,吃一个馒头,并且退场,最后让他无法吃. 代码: #include int main() { using namespac ...

  3. 鲁智深吃馒头,约瑟夫环问题

    问题:99个人,99个馒头,来了一个鲁智深,找个位置把他放进去,然后每逢五的人,吃一个馒头,并且退场,最后让他无法吃. 在讲解数组应用等问题中,为学生展示该问题的求解方法. 问题抽象: 99个馒头,每 ...

  4. 使用python编写三个吃货吃馒头与一个伙夫生产馒头(线程与锁)

    一个伙夫蒸馒头(生产者,售票),要求蒸够10个,等待,并唤醒吃馒头的人 三个吃货吃馒头(消费者,买票),要求同时吃,当任何一个人发现没馒头了,唤醒伙夫. 生产者是一堆线程,消费者是另一堆线程,内存缓冲 ...

  5. 减肥期间早餐或者晚餐吃馒头包子可以吗?

    我先给出答案:减肥期间,早餐可以吃馒头和包子,晚餐最好就不要吃这些了,另外摄入量一定要控制,不能吃得过饱. 1.先来对比馒头和包子 馒头和包子都属于面食,只不过包子多了馅料,一般就是纯蔬菜馅和肉馅. ...

  6. 多线程案例----严格单例模式----和尚吃馒头问题

    在项目中,经常用到一种设计模式----单例模式,下面举一个小案例,说明线程安全的单例模式在多线程中的应用,以供学习参考: 和尚吃馒头: 100个馒头,30个和尚,每个和尚最少吃一个馒头,最多不超过4个 ...

  7. Java 多线程实现和尚吃馒头的问题

    和尚吃馒头问题 30和尚,100个馒头,每个和尚最多吃4个馒头,最少吃1个馒头,一次只能吃1个馒头. 满足上述条件,尽快吃光馒头. 注意 合适没吃一个馒头之后要 yield(),不然他会连续吃满4个馒 ...

  8. 多线程---和尚吃馒头问题

    在项目中,经常用到一种设计模式----单例模式,下面举一个小案例,说明线程安全的单例模式在多线程中的应用,以供学习参考: 和尚吃馒头: 100个馒头,30个和尚,每个和尚最少吃一个馒头,最多不超过4个 ...

  9. 【代码练习4】利用多线程处理和尚吃馒头问题

    和尚吃馒头 30个和尚,100个馒头,每个和尚至少吃一个馒头,最多不过4个馒头. 满足上述条件下,尽快将馒头吃完. 思路:开启多线程,以最快的速度抢占馒头,首先抢到4个馒头的线程就停止掉:当剩余的馒头 ...

最新文章

  1. siblings获取不平级_siblings()是获取平级元素,哪不是平级应该怎么获取元素呢?...
  2. R画月亮阴晴圆缺:corrplot绘图相关系数矩阵
  3. Codeforces 768E:Game of Stones
  4. 关于C语言中的结构体内存对齐与位段问题
  5. find查找所有php,linux中的find命令—查找文件名
  6. python查询oracle数据库_python针对Oracle常见查询操作实例分析
  7. [BZOJ 1085] [SCOI2005] 骑士精神 [ IDA* 搜索 ]
  8. 论文浅尝 | 主题感知的问答生成
  9. scala初学之函数定义、流程控制、异常处理入门
  10. Neither BindingResult nor plain target object for bean name 'xxx' availabl问题解决
  11. .net Thrift 之旅 (二) TServer
  12. 【java】简介(一)
  13. 计算机应用能力提升研修计划,教师信息技术应用能力提升培训个人研修计划.doc...
  14. git push 报错 error: failed to push some refs to ‘git@xxx/xx.git‘
  15. 【OP都能理解之】 张量
  16. ORACLE应用产品和SAP、SSA、SYMIX产品的比较分析
  17. 2022年淘宝天猫双十一预售红包优惠券满减活动什么时候开始天猫淘宝双11预售定金可以退款吗?
  18. 同步调用和异步调用两者之间的区别
  19. 用模拟器初识DELL Network
  20. 2021年「博客之星」参赛博主:dnbug Blog

热门文章

  1. 基于Python的PyGame实现的横板动作小游戏
  2. 对图片进行裁减预处理
  3. 用python六行代码写一个简单的键盘记录器
  4. java中if中的true和false_java中if(true)这个判断语句啥意思?能举例说明呢? Java中if(bool...
  5. 分批处理list中的数据_如何分批次处理List集合中的数据
  6. 曼尼托巴大学计算机科学硕士,曼尼托巴大学计算机科学本科申请.pdf
  7. 别再拿TPS说事了!说实在的,有些场景3000TPS就够用了 | 人物志
  8. java:上传微信临时文件的素材
  9. 读书笔记008:《伤寒论》- 手太阳小肠经
  10. tplinkwr710n改无线打印服务器,【多图】TP-Link TL-WR710N 改8M Flash 刷OpenWrt