问题描述:有n个人围成一圈,顺序排号。从第一个人开始从1到k(假设k=3)报数,报到k的人退出圈子,然后圈子缩小,从下一个人继续游戏,问最后留下的是原来的第几号。

代码实现:

from itertools import cycle

def demo(lst, k):

#切片,以免影响原来的数据

t_lst = lst[:]

#游戏一直进行到只剩下最后一个人

while len(t_lst)>1:

#创建cycle对象

c = cycle(t_lst)

#从1到k报数

for i in range(k):

t = next(c)

#一个人出局,圈子缩小

index = t_lst.index(t)

t_lst = t_lst[index+1:] + t_lst[:index]

#测试用,查看每次一个人出局之后剩余人的编号

print(t_lst)

#游戏结束

return t_lst[0]

lst = list(range(1,11))

print(demo(lst, 3))

Python版本的报数游戏相关推荐

  1. 【华为机试真题 Python实现】报数游戏

    文章目录 前言 题目描述 示例 1 示例 2 参考代码 前言 <华为机试真题>专栏含牛客网华为专栏.华为面经试题.华为OD机试真题. 如果您在准备华为的面试,期间有想了解的可以私信我,我会 ...

  2. 微课|中学生可以这样学Python(例5.3):报数游戏

    适用教材: 董付国,应根球.<中学生可以这样学Python>.清华大学出版社,2017. 第5章  Python序列及应用 5.1.6  精彩例题分析与解答 例5.3  报数游戏 京东购买 ...

  3. Python实现猜词游戏 Hangman Game(不带提示和带提示版本)

    本文目录 Python实现猜词游戏(Hangman Game) 一.任务准备 二.Hangman游戏的功能需求 三.辅助函数的构建 1.确定一个单词是否被猜出 2.获取用户当前的猜词进度 3.确定还有 ...

  4. Python报数游戏的另一种思路

    最近和朋友被一个问题整死了 问题是:有N(N=20)个人围成一圈做游戏,规则如下:从某一个人开始报数,依次报1,2,3,喊到3的人出局.下一个人接着从1开始报数,直到最后只剩下一个人.问最后剩下的是谁 ...

  5. python模拟报数游戏

    题目:编写程序,模拟报数游戏.有n个人围成一圈,顺序编号,从第一个人开始从1到k(假设k=3)报数,报到k的人退出圈子,然后圈子缩小,从下一个人继续游戏,问最后留下的是原来的第几号. 思路: 初步实现 ...

  6. python模拟报数游戏有n个人围成一圈,从0到n-1按顺序编号,从第一个人开始从1到k报数,报到k的人推出圈子,然后圈子缩小,从下个人继续游戏,问最后留下来的是几号?

    python模拟报数游戏 有n个人围成一圈,从0到n-1按顺序编号,从第一个人开始从1到k报数,报到k的人推出圈子,然后圈子缩小,从下个人继续游戏,问最后留下来的是几号? from itertools ...

  7. python 开发框架 ant_GitHub - forging2012/pymqant: python版本mqant游戏框架

    mqant mqant是一款基于Golang语言的简洁,高效,高性能的分布式游戏服务器框架,研发的初衷是要实现一款能支持高并发,高性能,高实时性,的游戏服务器框架,也希望mqant未来能够做即时通讯和 ...

  8. python循环报数游戏_报数游戏python 解答

    又做了个小题目,报数游戏. 题目详情: 一种报数游戏是从1开始连续报数,如果报到7的倍数(7,14,21,28--)或者包含数字7的数(7,17,27,37--)就用拍手代替这个数而不能报出.假设你连 ...

  9. python——报数游戏

    报数游戏 模拟报数游戏.有n个人围成一圈,顺序编号,从第一个人开始从1到k(假设k=3)报数, 报到k的人退出圈子,然后圈子缩小,从下一个人继续游戏,问最后留下的是原来的第几号. 思路 代码 &quo ...

最新文章

  1. 腾讯应用宝采集数据分析
  2. python的就业方向有哪些城市_以就业为目标,Python有哪些方向值得学?
  3. linux节点ssh免密码登录linux节点
  4. java 构建树形结构_Java求助:如何建立一个树形结构
  5. New Monday
  6. C++控制台输出中文时乱码的解决方案
  7. 容器技术Docker K8s 22 容器服务ACK基础与进阶-存储管理
  8. 水晶球 crystal ball
  9. 编程基础巩固——英语单词记忆技巧
  10. 关于IE6无法升级为IE7或者IE8的问题
  11. 腾讯视频显示网络连接服务器失败怎么办,腾讯视频不能投屏怎么回事 腾讯视频无法投屏的解决方法...
  12. 4.2.4 Kafka高级特性解析(物理存储、稳定性:事物,控制器,可靠性,一致性,_consumer_offsets、延时队列、自定义重试队列)
  13. ‘字符型‘变量和‘字符串型‘变量
  14. 如何将旧电脑数据迁移到新电脑?10 款数据迁移软件工具分享
  15. springBoot 项目自定义命名application.properties配置文件名称
  16. Shell中ls -l 与 ll 的区别
  17. 《head first sql》读书笔记1
  18. StringTokenizer的用法详解
  19. 开源工程ffdshow
  20. tplink703n无线打印服务器,TP-Link TL-WR703N无线路由器客户端模式(Client)设置上网

热门文章

  1. oracle拼接空格错误,oracle运维故事 一个空格引发的血案
  2. 电脑系统如何锁定计算机,如何删除“解除计算机锁定”页面?
  3. java 界面框架源码_轻量级java web实践-8(框架源码-6)
  4. html 点击子元素,html如何点击子元素事件而不触发父元素的点击事件——阻止冒泡...
  5. 玩转 SpringBoot 2 快速整合 | RESTful Api 篇
  6. github团队合作
  7. 基于JAVA+SpringMVC+Mybatis+MYSQL的共享单车管理系统
  8. oracle重启 日志_超详细的数据库主机及数据库日志收集总结
  9. java 链表逆转_java 实现单链表逆转详解及实例代码
  10. Mysql Update 流程摘抄