今天的这道题,还是有一些难度的,我们先来看一下题目。
![](https://img.haomeiwen.com/i12775572/f7080eb13fb2c02d.jpg)
有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
看完之后,是不是有种瞬间蒙圈的赶脚?
其实这道题考察的主要是Python当中的一个叫做pop()的函数,而这个函数也是在上一个实例当中使用到过的一个函数,明白了这个函数的用法之后,就能够比较轻松的将这道题目解答出来。
pop()函数的主要作用可以详见下图:
![](https://img.haomeiwen.com/i12775572/443ab14d681f6a5b.png)
下面我们来看一下代码:
# 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
n = int(input("请输入人数:"))
list = [] # 创建一个空列表
count = 0 #创建一个计数的值
for i in range(1,n+1): #创建一个循环,将列表当中的所有元素都添加进去
list.append(i)
while True: # 如果为真 创建一个条件循环
if len(list) == 1: # 如果列表的长度为1
print(list) # 打印出该列表的数字
break
else: #否则针对其余情况,单独创建一个如下的条件
count += 1 # 记数加1
pop = list[0] #取出列表当中的第一个元素,并赋值给pop
list.pop(0) #移除列表当中的第一个元素
if count == 3: # 如果count的数为3的时候
count = 0 #count归0
continue #并继续
else: # 否则
list.append(pop) #将移除的元素加入到list当中,如此循环往复
print(list) # 最后打印出剩余在list中的元素
我们再来看一下输出的结果:
C:\Python\python.exe "C:/Users/Administrator/Desktop/Python 练习实例100题/Python69.py"
请输入人数:34
[10]
[10]
Process finished with exit code 0
2020年4月1日(愚人节快乐!)
北京市通州区京贸中心
网友评论