题目转载:http://python.wzms.com/s/1/103
题目描述:
n个人(n<=100)围成一圈,从第一个人开始报数,数到m的人出列,再由下一个人重新从1开始报数,数到m的人再出圈,……,依次类推,直到所有的人都出圈,请输出依次出圈人的编号。
输入格式:
n m
输出格式:
出圈的编号
由于这道题太难,因此,就先从低难度的题开始做起,不设置像原题那样的条件。
98-3 围成一圈数三报数且出列
题目:假设有10个人围成一圈,从1开始报数,数到3的人,让他出列,下一个人重新从1开始报数,数到3的人,让他出列……以此类推,把依次出列的9个人的编号打印出来
请教过同学,同学给出的代码如下。代码运行结果是正确的。
其中有一个技巧:用count来记录报数的次数,数到3对应的count,一定是3的倍数,用 %取模 来找到数三的人。
代码:
number_list = list(range(1, 11))
count = 0
while len(number_list) > 1:
number_list_copy = number_list[:]
for i in range(0, len(number_list_copy)):
count += 1
if count % 3 == 0:
number_list.remove(number_list_copy[i])
print(
Python实现:围成一圈数三报数出列问题

该博客介绍了围成一圈报数的编程问题,具体为n人(n≤100)从1开始报数,数到m的人出列。文章以10人为例,详细讲解了当m=3时,如何找出依次出列的9个人的编号,并给出了同学提供的正确Python代码解决方案,利用count和取模技巧定位数到3的人。
最低0.47元/天 解锁文章
1001

被折叠的 条评论
为什么被折叠?



