约瑟夫环问题
依旧还得递推公式
这道题目就N小朋友围成一个圈报数 不同的是从第W个小朋友开始报,每个m个人淘汰
需要逆推的过程,让编号为0的那个人前面插入刚才淘汰的人,假设现在剩余X人,则刚才淘汰的编号为
M%(m+1),其余的根据这个来推,直到从1到N 这样下去 最后形成的递推公式为T(N)=(T(N)+W)%n
#include<stdio.h>
int main()
{
int n,s,m,w;
int b[10010];
char d[101][101];
s=0;
while(scanf("%d%d%d",&n,&w,&m)&&(n||m||w))
{
s=0;
for(int i=2;i<n;i++)
{
s=(s+w)%i;
}
printf("%d\n",(s+m)%n+1);
}
return 0;
}