当前位置: 首页 > news >正文

python-约瑟夫环(赛氪OJ)

[题目描述]
n 个人( 0,1,2,3,4...n−1 ),围成一圈,从编号为 k 的人开始报数,报数报到 m 的人出队。
下次从出队的人之后开始重新报数,循环往复,当队伍中只剩最后一个人的时候,那个人就是大王。现在,给定 n ,k ,m 。
请你求出大王的编号。
输入格式:
输入一行包含三个整数 n , k , m 。
输出格式:
输出一个整数。
样例输入
5 1 2
样例输出
3
数据范围:
对于 100% 的数据,保证 1≤n≤100,1≤k≤n−1,1≤m≤100 。
来源/分类(难度系数:一星)


完整代码展示:
n,k,m=map(int,input().split())
a=[]
for i in range(0,n):
      a.append(i)
a1=a[0:k]
a2=a[k::]
a=a2+a1
while len(a)>1:
       a3=a[0:m-1]
       a4=a[m::]
       a=a4+a3
print(a[0])


代码解释:
n,k,m=map(int,input().split()) ”,让用户输入总人数n,开始报数的人的编号k和给定的需出列的人的报数m。
a=[]
 for i in range(0,n):
       a.append(i)     
”,建立一个空列表a,接着将从0~n-1编号的n个人依次添加进列表a中。
a1=a[0:k]
 a2=a[k::]
 a=a2+a1   
”,令a1=a[0:k],a2=a[k::],接着将a[2]+a[1]重新赋给a(注意:是a=a2+a1,不是a=a1+a2),本段代码意义在于将编号为k的人调到列表首位,作为报数的第一个人。
while len(a)>1:
         a3=a[0:m-1]
         a4=a[m::]
         a=a4+a3
      ”,当列表a中元素数量大于1时(即len(a)>1),令a3=a[0::m-1],a4=a[m::],接着将a4+a3重新赋给a。当len(a)==1时,跳出整个while循环。(本段代码意义在于从列表首开始报数,然后将每次报数为m的元素删除,接着让报数为m的元素的后面一位元素作为列表首)。
print(a[0]) ”,打印a[0]。(即最后一个人)


运行效果展示:

3830aff0049c4057acb7959f53282e84.jpg

eb956787739d4f11a7c080295b16f60b.jpg 

               (声明:以上内容均为原创) 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Python 爬虫项目实战一:抖音视频下载与网易云音乐下载
  • 什么是DNS缓存?DNS缓存有哪些作用和危害?
  • 六大设计原则和23种设计模式
  • Linux-vim编辑器以及权限-04
  • Docker资源隔离的实现策略以及适用场景
  • 利用formdata自动序列化和xhr上传表单到后端
  • github项目-创建一个新分支
  • HarmonyOS Flex布局
  • 【博客搭建 第二篇章】项目中怎么引入其他的 icon
  • NLP——Transfromer 架构详解
  • HarmonyOS鸿蒙应用开发之Text组件的使用
  • gogs的安装和使用(docker)
  • [Bugku] web-CTF靶场系列系列详解⑥!!!
  • Leetcode每日刷题之75. 颜色分类(C++)
  • 搭建AI知识库:打造坚实的团队知识堡垒
  • 分享的文章《人生如棋》
  • 10个最佳ES6特性 ES7与ES8的特性
  • docker容器内的网络抓包
  • Docker下部署自己的LNMP工作环境
  • eclipse的离线汉化
  • emacs初体验
  • JavaScript-Array类型
  • Quartz初级教程
  • React组件设计模式(一)
  • STAR法则
  • 分布式事物理论与实践
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 浏览器缓存机制分析
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 数组大概知多少
  • 掌握面试——弹出框的实现(一道题中包含布局/js设计模式)
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • ​数据结构之初始二叉树(3)
  • #14vue3生成表单并跳转到外部地址的方式
  • (1) caustics\
  • (1)常见O(n^2)排序算法解析
  • (20)docke容器
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (附源码)ssm航空客运订票系统 毕业设计 141612
  • (四)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • (原创)可支持最大高度的NestedScrollView
  • (转)iOS字体
  • (转)Sql Server 保留几位小数的两种做法
  • (最新)华为 2024 届秋招-硬件技术工程师-单板硬件开发—机试题—(共12套)(每套四十题)
  • .Net CoreRabbitMQ消息存储可靠机制
  • .NET CORE使用Redis分布式锁续命(续期)问题
  • .NET Micro Framework 4.2 beta 源码探析
  • .net 程序 换成 java,NET程序员如何转行为J2EE之java基础上(9)
  • .NET编程C#线程之旅:十种开启线程的方式以及各自使用场景和优缺点