登录
  • #刷题
  • #每日刷题
  • #文商科转码,我上岸啦!

【学‌‌‌‍‌‌‍‌‍‌‌‍‌‌‌‌‌‍‌‌‌‌‌‍‍‌‍‍‍‍‌‌习分享】Python刷题持续更新 - 涵盖题目/笔记/答案

SuperLcyu
1054
2
开始入门转码Python,最近发现了Python 100例,感觉是非常不错的练习资源,给大家分享~

持续更新中,会分享自己的学习笔记和想法,欢迎讨论!

【前言】



  1. 使用的是Visual Studio Code,附上代码Tab全部转换成空白符的方法:Link



Python 练习实例69

【题目】

有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。

以下代码来源:Link
n=int(input('输入数字:'))#输入数字[br][/br][br][/br]a=list(range(1,n+1))#建立一个列表,存放的是号码数[br][/br][br][/br]count=0;#构造一个全局变量,使得其储存每一位报的数[br][/br][br][/br]while len(a)>1:#循环直到列表只剩一个元素[br][/br][br][/br]    b=a[​:]#复制列表,为下一步删除做准备[br][/br][br][/br]    for i in range(0,len(b)):#在len(b)的次数中,计数,并去除数[br][/br][br][/br]        count+=1[br][/br][br][/br]        if count%3==0:#如果报三,则去除a中的这一位[br][/br][br][/br]            a.remove(b[i])[br][/br][br][/br]print(a[0])【学习笔记】[br][/br][br][/br]123456789[br][/br][br][/br]   ↑[br][/br][br][/br]124578[br][/br][br][/br]          ↑[br][/br][br][/br]-设一圈人数n[br][/br][br][/br]-设一圈人排列是list a → a=list(range(1,n+1))[br][/br][br][/br]-设计数器count=0:因为从123报数,相当于123456...一直累计报数[br][/br][br][/br]-设while循环:因为有多轮循环,并且停止条件是list a只剩最后一个元素[br][/br][br][/br]-设i指针【每次移动指针都count+1,累计计数】[br][/br][br][/br]-如果对应排序(第len个),能整除三,就删除list a对应数字[br][/br][br][/br]-删完了用list b更新列表list a,【这里在循环开头初始化list b → b=a[​:]】,进入下一轮循环[br][/br][br][/br]———————————————————————————[br][/br][br][/br]update:2022-1-16[/i]
2条回复
热度排序

发表回复