7-5 模拟报数游戏(约瑟夫环问题):有n个人围成一圈从1开始按顺序编号从第一个人开始从1到k报数,报到k的人退出圈子;然后圈子缩小,下一个人继续,问最后留下的是第几号(只留1 人)。要求定义函数
学习记录与分享
PTA程序设计类教学平台—Python作业二(循环结构程序设计)
题目
7-5 模拟报数游戏(约瑟夫环问题)
有n个人围成一圈,从1开始按顺序编号,从第一个人开始从1到k报数,报到k的人退出圈子;然后圈子缩小,从下一个人继续游戏,问最后留下的是第几号(只留1 人)。要求定义函数实现。
输入格式:
初始n和k自由指定。
输出格式:
最后留下人的原序号,以列表形式展示。
输入样例:
45
4
输出样例:
[27]
答案:
n = int(input())
k = int(input())
c = []def hhh(n, k):#定义一个哈哈哈函数for i in range(1, n + 1):c.append(i)num = 1while len(c) != 1:c.append(c.pop(0)) # 把已报数的人取出放到队尾,以此实现围成圈循环往复num += 1if num == k:del c[0] # 把报到规定数字的人踢出圈子num = 1 # 重新从1开始报数return cprint(hhh(n, k))
END~
7-5 模拟报数游戏(约瑟夫环问题):有n个人围成一圈从1开始按顺序编号从第一个人开始从1到k报数,报到k的人退出圈子;然后圈子缩小,下一个人继续,问最后留下的是第几号(只留1 人)。要求定义函数相关推荐
- 约瑟夫环问题:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。...
首先,我最大的学习来源不是百度而是我群友~~在这里表白一波我热爱学习的群友们! 然后今天群里突然有人提出了题目的这个问题: 有n个人围成一圈,顺序排号.从第一个人开始报数(从1到3报数),凡报到3的人 ...
- 约瑟夫环问题,n个人围成一圈,依次按1、2.....m来报数,报数值为m的人出圈,求最后出圈的人和出圈的序列
约瑟夫环问题(有时也称为约瑟夫斯置换,是一个出现在计算机科学和数学中的问题.在计算机编程的算法中,类似问题又称为约瑟夫环.又称"丢手绢问题".),也就是如下图这个样子: 简单来讲就 ...
- C++[算法]用数组模拟约瑟夫问题,即 N个人围成一圈,顺时针每数到给定K值的人出列,直到剩下最后一个人,求出圈人的序号顺序
约瑟夫是公元1世纪一位著名的历史学家. 约瑟夫问题可简述为: 有n人围坐成一圈(假设他们的编号沿顺时针方向依次为1到n).编程序,使用数组来存放各数据(人员编号),而后从1号人员开始数起(沿顺时针方向 ...
- 13个人围成一圈,从第1个人开始顺序报号1、2、3,凡报到3的人退出圈子。找出最后留在圈子里的人原来的序号。
[绕圈报数] 1130 更新 ======== 一般化情况 13个人围成一圈,从第1个人开始顺序报号1.2.3,凡报到3的人退出圈子.找出最后留在圈子里的人原来的序号. 输出提示 "出圈成员 ...
- 约瑟夫环问题:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
题目: 有n个人围成一圈,顺序排号.从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位. 解题思路: 利用数组的"0"和&qu ...
- python模拟报数游戏有n个人围成一圈,从0到n-1按顺序编号,从第一个人开始从1到k报数,报到k的人推出圈子,然后圈子缩小,从下个人继续游戏,问最后留下来的是几号?
python模拟报数游戏 有n个人围成一圈,从0到n-1按顺序编号,从第一个人开始从1到k报数,报到k的人推出圈子,然后圈子缩小,从下个人继续游戏,问最后留下来的是几号? from itertools ...
- 算法训练 - 筛选号码 (有n个人围成一圈,顺序排号(编号为1到n)。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子。从下一个人开始继续报数,直到剩下最后一个人,游戏结束。)
问题描述 有n个人围成一圈,顺序排号(编号为1到n).从第1个人开始报数(从1到3报数),凡报到3的人退出圈子.从下一个人开始继续报数,直到剩下最后一个人,游戏结束. 问最后留下的是原来第几号的那位. ...
- 报数游戏是这样的:有n个人围成一圈,按顺序从1到n编好号。从第一个人开始报数,报到m的人退出圈子;下一个人从1开始报数,报到m的人退出圈子。如此下去,如此反复到所有人出列。
报数游戏是这样的:有n个人围成一圈,按顺序从1到n编好号.从第一个人开始报数,报到m(<n)的人退出圈子:下一个人从1开始报数,报到m的人退出圈子.如此下去,如此反复到所有人出列.设n个人的编号 ...
- 有n个人围成一圈,按顺序从1到n编号。从第一个人开始报数,报数3的人退出圈子,下一个人从1开始重新报数,报数3的人退出圈子。如此循环,直到留下最后一个人。问留下来的人的编号。
[问题描述]有n个人围成一圈,按顺序从1到n编号.从第一个人开始报数,报数3的人退出圈子,下一个人从1开始重新报数,报数3的人退出圈子.如此循环,直到留下最后一个人.问留下来的人的编号. [输入形式] ...
最新文章
- ​图像识别算法超低代码开发方案
- 推特雪花算法 java实现
- MySQL的主从复制详解
- 捷联惯导系统学习7.4(车载惯性/里程仪组合导航 )
- python实现微信自动回复_python实现微信自动回复功能
- 是指直接进行国际联网的计算机信息网络,网络安全合规指引题库:计算机信息网络直接进行国际联网,可以使用邮电部国家公用电信网提供的国际出入口信道。单位和个人也可以自行建立信道进行国际联网。()...
- 安卓dj专业打碟机软件_18号免费软件集合
- 层次聚类python实现
- 共享硬盘没有权限访问计算机,win7系统访问磁盘共享没有权限的解决方法
- 9行代码用python制作迷宫gif动画
- 开始用巴别小精灵强化英语单词记忆
- 鲁宾逊微积分与“知识共享”,携手相伴进入中国
- 2013年3月山东综合性网站及社区网站 综合影响力排名
- 模电笔记 2理想运放电路
- 惠普服务器-ILO使用
- MongoDB与亚马逊云科技扩大全球合作
- 计算机里面的文件一直和桌面上重复,有些文件删不掉_电脑桌面上有一个文件图标老是删不掉,每次删,都......
- linux学习软件有哪些,Linux学习12个有效果软件!看看哪些你用得上
- 单片机控制继电器电路 程序就很简单了 做一个口的输出就可以了
- 安卓网apk安装器_光遇国际服安装攻略