本文中递推关系部分参考文章如下:
参考文章:约瑟夫环问题的两种解法(详解)
1.递推关系

最后一步剩下的编号为0,该编号上一步对应的编号为(0+m)%2=1,1这个编号上一步对应的编号为(1+m)%3=1,1这个编号上一步对应的编号为(1+m)%4=0,以此类推。
2.code
#include <iostream>
using namespace std;
int main()
{
int n,m;
cin >> n >> m;
if(n < 1 || m < 1){
return 0;
}
int pre = 0;
int cur = 0;//递推公式中的编号从1开始
for(int i=1; i<n; i++){
cur = (pre+m)%(i+1);
pre = cur;
}
++cur;//实际编号从1开始
cout << cur;
return 0;
}
本文深入解析约瑟夫环问题的递推解法,通过递推关系和C++代码实现,详细说明了如何求解指定人数和报数间隔下幸存者的编号。适用于理解递归算法和解决相关数学谜题。
1327

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



