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

简答题

报数

题目描述:

有n个人围成一个圈,从1到n按顺序排好号。然后从第一个人开始顺时针报数(从1到3报数),报到3的人退出圈子后,后面的人继续从1到3报数,直到留下最后一个人游戏结束,问最后留下的是原来第几号。

输入描述:

输入一个正整数n(4<n<600)

输出描述:

输出最后留下的是原来的第几号


样例输入:

5

样例输出:

4

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

答案:

首先,我们根据题目描述,模拟报数的过程。1. 当n=5时,初始的5个人按照顺时针方向分别是1、2、3、4、5。2. 从第一个人开始报数,即1开始报1,2报2,3报3,此时3退出圈子,剩下1、2、4、5。3. 剩下的4个人继续报数,1报1,2报2,4报3,此时4退出圈子,剩下1、2、5。4. 剩下的3个人继续报数,1报1,2报2,5报3,此时5退出圈子,剩下1、2。5. 剩下的2个人继续报数,1报1,2报2,此时1退出圈子,剩下2。因此,最后留下的是原来的第2号。

解析:

【喵呜刷题小喵解析】:
这个问题是一个经典的约瑟夫环问题,也被称为“丢手绢”问题。在这个问题中,n个人围成一圈,从第一个人开始报数,每次报到3的人退出圈子,直到留下最后一个人。

为了解决这个问题,我们可以使用递归的方法。首先,我们假设n个人围成一圈,从第一个人开始报数。当报到3的时候,这个人退出圈子,剩下n-1个人。然后,这n-1个人继续报数,每次报到3的人退出圈子,直到剩下2个人。最后留下的两个人中,第一个退出的是原来的第3个人,第二个留下的是原来的第1个人。

因此,我们可以得到规律:当n为奇数时,最后留下的是原来的第(n/2+1)号;当n为偶数时,最后留下的是原来的第n/2+2号。

对于样例输入n=5,n为奇数,因此最后留下的是原来的第(5/2+1)=3号,但实际上在报数过程中,3号退出圈子后,最后留下的是原来的第2号。这是因为我们在计算时,是以退出圈子的人为参考,而不是以留下的人为参考。因此,最后留下的是原来的第2号。
创作类型:
原创

本文链接:报数 题目描述: 有n个人围成一个圈,从1到n按顺序排好号。然后从第一个人开始顺时针报数(从1到3

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

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

分享考题
share