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

📄 约瑟夫环(数组表示).cpp

📁 约瑟夫环
💻 CPP
字号:
#include<iostream>
using namespace std;

#define maxlen 30

typedef int elemtype;

typedef struct{
	elemtype elem[maxlen];
	int length;
}sqlist;
sqlist joseph;

void initlist_sq(sqlist &l){
	l.length=0;
}

void jos(int m, int n){
	cout<<"请依次输入"<<n<<"个密码:";
	for(;joseph.length<n;joseph.length++)
		cin>>joseph.elem[joseph.length];//赋密码值
	cout<<"出列顺序为:";
	int i=-1;//i为数组下标(下一值为0)
	for(int k=0;k<n;k++){
		for(int j=0;j<m;){
			i=(i+1)%n;
			if(joseph.elem[i]!=0)
				j++;
		}
		cout<<i+1<<" ";
		m=joseph.elem[i];
		joseph.elem[i]=0;
	}
	cout<<endl;
}

void main(){
	int m,n;//m为密码,n为小孩个数
	cout<<"请输入初始密码m和人数n(n不大于30):";
	do
	{   
		cin>>m>>n;
		if(n<1||n>30) cout<<"人数不合法,请重输(n不大于30):"<<endl;
	}while(n<1||n>30);

	initlist_sq(joseph);// 初始化线性表
	jos(m,n);
}

⌨️ 快捷键说明

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