目录

  • 猴子选大王

代码思路仅供参考,欢迎大家批评指正!


猴子选大王

一群猴子要选新猴王。新猴王的选择方法是:让N只候选猴子围成一圈,从某位置起顺序编号为1~N号。从第1号开始报数,每轮从1报到3,凡报到3的猴子即退出圈子,接着又从紧邻的下一只猴子开始同样的报数。如此不断循环,最后剩下的一只猴子就选为猴王。请问是原来第几号猴子当选猴王?


思路:

逐个删除退圈的猴子结点
删除结点的同时,指针/下标ptr前移一位,所以ptr为3=3-0、5=6-1、7=9-2、9=12-3
最后除余操作防止ptr溢出。

# By jurio.
N = int(input())idx = [i for i in range(1, N+1)]
ptr = 1
while len(idx) > 1:ptr += 2ptr = (ptr - 1) % len(idx) + 1idx.remove(idx[ptr - 1])print(idx[0])

【Python】猴子选大王相关推荐

  1. python猴子选大王_“猴子选大王” 算法 python实现

    今天来实现一个约瑟夫环算法,下面是一道新浪的面试题: m只猴子围坐成一个圈,按顺时针方向从1到m编号.然后从1号猴子开始沿顺时针方向从1开始报数,报到n的猴子出局,再从刚出局猴子的下一个位置重新开始报 ...

  2. python猴子选大王讲解_python 【猴子选大王】算法示例

    对python这个高级语言感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编两巴掌来看看吧! 今天来实现一个约瑟夫环算法,下面是一道新浪的面试题: m只猴子围坐成一个圈,按顺时针方向从1到m编 ...

  3. python猴子选大王讲解_“猴子选大王”算法python实现

    今天来实现一个约瑟夫环算法,下面是一道新浪的面试题: m只猴子围坐成一个圈,按顺时针方向从1到m编号.然后从1号猴子开始沿顺时针方向从1开始报数,报到n的猴子出局,再从刚出局猴子的下一个位置重新开始报 ...

  4. Python 猴子选大王(约瑟夫环)算法

    def KingElect(totalNum, startNum, intervalNum):'''猴子选大王totalNum:猴子总数tartNum:开始序号intervalNum:间隔数'''mo ...

  5. python猴子选大王_sicily 猴子选大王

    题目描述 猴子选大王,有N只猴子,从1-N进行编号.它们按照编号的顺时针方向,排成一个圆圈,然后从第一只猴子开始报数.第一只猴子报1,以后每只猴子报的数字都是它前面猴子所报数字加1.如果一只猴子报的数 ...

  6. python猴子选大王讲解_关于猴子选大王的面试题

    一群猴子排成一圈,按1,2,...,n依次编号.然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去...,如此不停的进行下去,直到最后只剩下一只猴子为止,那只猴子 ...

  7. python猴子选大王_python-猴子选大王问题

    一群猴子要选新猴王.新猴王的选择方法是:让N只候选猴子围成一圈,从某位置起顺序编号为1~N号.从第1号开始报数,每轮从1报到3,凡报到3的猴子即退出圈子, 接着又从紧邻的下一只猴子开始同样的报数.如此 ...

  8. python练习:猴子选大王

    python题目:猴子选大王 题目内容: 一群猴子围成一圈,按1,2,3,-,m依次编号. 然后从第1只开始数,数到第n只,把它剔除圈,再重新开始数, 如此不停的进行下去,最后剩下的那只就是大王. 要 ...

  9. 猴子选大王(python)

    猴子选大王 一群猴子要选新猴王.新猴王的选择方法是:让N只候选猴子围成一圈,从某位置起顺序编号为1~N号.从第1号开始报数,每轮从1报到3,凡报到3的猴子即退出圈子,接着又从紧邻的下一只猴子开始同样的 ...

  10. python解决猴子选大王问题:15个猴子围成一圈选大王,依次1-7循环报数,报到7的猴子被淘汰,直到最后一只猴子成为大王。问: 哪只猴子会成为大王 ?

    话不多说,超级简单,直接上代码: ## 给猴子编号 AllMonkey = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]## 循环出栈 num ...

最新文章

  1. 估价范围还没有生产式的物料帐薄
  2. socket编程中的异常处理
  3. Java并发编程之ConcurrentHashMap
  4. MongoDB sharding模式实现(http://blog.chinaunix.net/xmlrpc.php?r=blog/articleuid=28266791id=5758139 )
  5. Quartz定时调度CronTrigger时间配置格式说明与实例
  6. 【英语学习】【Daily English】U01 Greetings / L02 What brings you here?
  7. java.io.file()_Java IO File (一)
  8. 棋盘问题 ( POJ -1321 )(简单DFS)
  9. python学习第25天
  10. ppt格式刷快捷键_15个PPT神操作,让老师做课件的效率翻倍!
  11. ad怎么批量改元器件封装_在AD软件中的PCB界面如何批量修改封装?
  12. pdf2docx:Python实现PDF转Word
  13. 结构梁配筋最牛插件_结构设计经验总结
  14. 微信小程序中播放视频 例子
  15. ubuntu 旺旺_Ubuntu 下通过Wine安装阿里旺旺并解决中文乱码
  16. 【Windows编程】系列第八篇:通用对话框
  17. 颜色透明度16进制对照表
  18. 怎么尽可能将pdf文件压缩到最小
  19. 阿里云服务器 API 的使用
  20. sap客户信贷_SAP信贷控制功能与配置详解

热门文章

  1. Ubuntu 2004 网页滚动截图方案
  2. MongoDB Capped Collection介绍
  3. 基于Python/MATLAB长时间序列遥感数据处理及在全球变化、物候提取、植被变绿与固碳分析、生物量估算与趋势分析
  4. 2014届华为成都校园招聘机试题
  5. Mac系统截图快捷键技巧
  6. vscode按下ctrl键,点击鼠标别名跳转
  7. Hue集成的一些问题
  8. 零售终端检查的重要性
  9. 关于二战群里早早提出的一道我尝试了7种途径未有结果的反常积分(利用等比来展开,代换)
  10. edge英文大小写错乱,中英文错乱问题