ds2_2.cpp

来自「这是清华大学出版社的《数据结构》的电子文档讲义」· C++ 代码 · 共 41 行

CPP
41
字号
// ds2_2.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "array.h"

void Josephus(array<int>a,int n,int s,int m){
	int i,j,k,temp;
	if(m==0) {cout<<"无效参数!"<<endl;	return; }
	for(i=0; i<n; i++) a[i]=i+1;
	i=s-1;
	for(k=n; k>=1; k--){
		if(i==k)i=0;
		i=(i+m-1)%k;
		if(i!=k-1){
			temp=a[i];
			for(j=i; j<k-1; j++) a[j]=a[j+1];
			a[k-1]=temp;
			}
		}
	for(k=0; k<n/2; k++){
		temp=a[k];
		a[k]=a[n-k-1];
		a[n-k-1]=temp;
		}
	for(i=0; i<n; i++) cout<<a[i]<<',';
	cout<<endl;
	}

int main(int argc, char* argv[])
{
	int number,start,men;
	cout<<"请输入总人数..."<<endl;		cin>>number;
	cout<<"请输入开始位置..."<<endl;	cin>>start;
	cout<<"请输入出局位置..."<<endl;	cin>>men;
	array<int> people(number);
	Josephus(people,number,start,men);
	return 0;
}

⌨️ 快捷键说明

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