⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adc.cpp

📁 利用顺序表模拟Joseph问题过程
💻 CPP
字号:
#include<stdio.h>
#include<stdlib.h>
typedef struct {/*定义顺序表的存储结构*/
	int *data;
	int length;
}sqlist;
void main(){
	sqlist L;
	int n,m,s,k,i,j,pos,time;
	FILE *fp;
	fp=fopen("aa.txt","r");/*从文件中读入相关数据*/
    fscanf(fp,"%d",&k);
	for(j=1;j<=k;j++){
		fscanf(fp,"%d%d%d",&n,&s,&m);
	    L.data=(int*)malloc(sizeof(int)*n);/*解决约瑟夫环问题的具体算法*/
	    for(i=0;i<n;i++)
		   L.data[i]=i+1;
	    L.length=n;
	    for(i=0;i<L.length;i++) /*打印出队列中所有元素*/
		    printf("%d",L.data[i]);
	    printf("\n");
	    if(n<s) printf("n less then s\n");
	    pos=s;
	    for(time=1;time<n;time++){/*解决出队元素和出队后的队列的算法*/
		    pos=pos+m-1;
		    while(pos>L.length)
			    pos=pos-L.length;
	    	printf("出队元素为:%d \n",L.data[pos-1]);
		    for(i=pos-1;i<=L.length-1;i++)
			    L.data[i]=L.data[i+1];
		    L.length--;
		    printf("第%d次出列后:\n",time);
		    for(i=0;i<L.length;i++)
			    printf("%d",L.data[i]);
		    printf("\n");
		}
	    printf("%d\n",L.data[0]);
	}
}


⌨️ 快捷键说明

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