剑指offer62:孩子们的游戏(圆圈中最后剩下的数)

题目链接:

孩子们的游戏(圆圈中最后剩下的数)_牛客题霸_牛客网

模拟法

1.定义两个变量分别用来表示循环报数的轮数和当前小朋友的序号

2.定义一个boolean型数组用来标记出列的小朋友序号

3.在当前小朋友喊之前判断一下是否出过列

约瑟夫环

“约瑟夫环”的问题求解是有规律的

f(n, m)表示n个人,每轮第m个喊话的人出列,最终剩下的人对应的索引

f(n ,m) = (f(n-1, m) + m) % n            f(1, m) = 0

举例说明

n = 5, k = 3

0、1、2、3、4        对应索引3=(0+3)%5

3、4、0、1              对应索引0=(1+3)%4

1、3、4                    对应索引1 =(1+3) % 3

1、3                          对应索引1 =(0+3)%2

3                                对应索引:0


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容