题解 2288: 蓝桥杯2018年第九届真题-约瑟夫环

来看看其他人写的题解吧!要先自己动手做才会有提高哦! 
返回题目 | 我来写题解

筛选

蓝桥杯2018年第九届真题-约瑟夫环-题解(C++代码)简单理解的进一步解释

解题思路:大佬的代码逻辑太强,对此作进一步的解释说明此代码运用的其实是一种从后往前倒推的思想,我们先假设最后一个人的位置为0,即s=0,所以s+m即为倒数第二个人的报数位置,以此类推,直到推出第一个人的报数位置,同时,这种方法的妙处在于它利用了报数问题的对称性和周期性,

2288: 蓝桥杯2018年第九届真题-约瑟夫环

//假设删除一个人之后,我们对剩余的玩家重新编号//一开始编号为:1,2,...,m-1,m,m+1,...,n//将编号为m的玩家删除之后,编号变成://...,n-2,n-1,1,2,...//删除前编号————删除后编号//m-1————n-2//m-2————n-1//m————无(被删除)/