刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

报数游戏

时间限制:1s

内存限制:128MB

(注:input()括号中不允许添加任何提示语)

有n(6≤n≤100)个小伙伴围成一圈做游戏,分别编号为1~n。游戏规则如下:

从第一个人开始依次说出N、O、C三个字母,第一个人说N,第二个人说O,第三个人说C,第四个人再说N,以此类推。如果一个人说到了两次O,那么他就被淘汰,下一个人从C开始继续往后说,直到最终剩下五个小伙伴,这五人即获得游戏的胜利。

例如:有六个小伙伴做游戏,那么1号说N,2号说O,3号说C,4号说N,5号说O,6号说C。

接下来再从1号继续,1号说N,2号说O,此时2号已经是第二次说O,那么2号淘汰,剩下的5个小伙伴的座位号是:1、3、4、5、6。

请编写一段程序,输入参与游戏的人数n(6≤n≤100),输出最终获得游戏胜利的五位小伙伴的座位编号。

输入描述:

输入一个正整数n,代表一共有n个小伙伴参加游戏(6≤n≤100)

输出描述:

由小到大输出获得游戏胜利的五位小伙伴的座位编号,编号之间以空格隔开


输入样例:

6

输出样例:

1 3 4 5 6

使用微信搜索喵呜刷题,轻松应对考试!

答案:

```pythonn = int(input())last_o_index = 0res = []for i in range(1, n + 1):if i == 2:last_o_index = iif i == last_o_index:last_o_index += 3continueres.append(i)res.sort()print(' '.join(map(str, res[:5])))```

解析:

【喵呜刷题小喵解析】:

这个问题可以通过模拟游戏过程来解决。我们维护一个变量`last_o_index`来记录最后说O的小伙伴的编号,初始值为0。然后,我们遍历1到n,如果当前小伙伴的编号等于`last_o_index`,则`last_o_index`增加3,这个小伙伴就被淘汰,否则将当前小伙伴的编号添加到结果列表`res`中。最后,对`res`进行排序,输出前五个元素即可。

由于题目中限制了输入的范围为6到100,所以在模拟过程中不需要处理n小于6的情况。

程序的核心思想是通过模拟游戏过程来找到最终获得游戏胜利的五位小伙伴的座位编号。由于游戏的规则比较简单,我们只需要按照规则进行模拟即可。具体来说,我们从第一个人开始依次说出N、O、C三个字母,如果一个人说到了两次O,那么他就被淘汰,下一个人从C开始继续往后说。在模拟过程中,我们维护一个变量`last_o_index`来记录最后说O的小伙伴的编号,初始值为0。然后,我们遍历1到n,如果当前小伙伴的编号等于`last_o_index`,则`last_o_index`增加3,这个小伙伴就被淘汰,否则将当前小伙伴的编号添加到结果列表`res`中。最后,对`res`进行排序,输出前五个元素即可。
创作类型:
原创

本文链接:报数游戏 时间限制:1s 内存限制:128MB (注:input()括号中不允许添加任何提示语) 有

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share