约瑟夫环 报数游戏

https://blog.csdn.net/qq_45804132/article/details/105606301

 https://www.zhihu.com/tardis/bd/art/121159246?source_id=1001   数学原理

#include<stdio.h>
#include<stdlib.h>
josephus(int *a,int n,int k)
{

int f=0,r=n,i;
while(f-r)
{
for(i=0;i<k-1;i++)//循环n-1次,保证弹出
{
f=(f+1)%n;
r=(r+1)%n;
a[r]=a[f];
}
f=(f+1)%n;
printf("%d ",a[f]);
}
}
int main()
{
int *a,n,k,i;
scanf("%d %d",&n,&k);
a=(int*)malloc(sizeof(int)*(n+1));//开辟空间
a[0]=n;
for(i=1;i<=n;i++)
a[i]=i;
josephus(a,n,k);
return 0;
}

posted on 2024-12-28 16:56  qh2028  阅读(6)  评论(0)    收藏  举报