约瑟夫问题-数组.cpp

来自「约瑟夫问题的两种解法 设有n个人围坐在一个圆桌周围」· C++ 代码 · 共 22 行

CPP
22
字号
#include<stdio.h>
void main(){
	int n,s,m,i,j,k,w;
	scanf("%d,%d,%d",&n,&s,&m);
	int p[100];
	for(i=1;i<=n;i++) p[i]=i;
	k=s;
	for(i=n;i>=2;i--){
		k=(k+m-1)%i;
		if(k==0) k=i;
		w=p[k];
		if(k<i)
			for(j=k;j<i;j++) p[j]=p[j+1];
		p[i]=w;
	}
	printf("%d\n",p[1]);
	for(i=n;i>=2;i--) printf("%d ",p[i]);
	printf("\n");
}


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?