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

📄 约瑟夫(顺序).cpp

📁 树的遍历等数据结构程序代码实现
💻 CPP
字号:
#include<iostream.h>
#include<string.h>
void joseph(int,int,int []);
void main()
{ cout<<"输入参数:"<<endl;
  int m,n;          //n个人,报的数为m
  
  cout<<"席上总人数n=:";cin>>n;
  cout<<"约定报的数m=:";cin>>m;
  int *L=new int[n];  //创建数组,存储退席序号
  for(int i=1;i<=n;i++)
	  L[i]=i;                   
  cout<<"退席顺序如下: ";
  joseph(m,n,L);
  
  cout<<endl;
}
void joseph(int m,int n,int L[])
{           
  int s=1;                     //设从第1个人开始报数
  for(int j=n;j>1;j--)
  { s=(s+m-1)%j;               //下一个出列人的序号
    if(s==0) s=j;
	int t=L[s];            //暂存出列人原编号
	for(int k=s;k<=j-1;k++)//移动数组数据,删除出列人
		L[k]=L[k+1];
	L[j]=t;                //将出列人移到数组尾
  }
  for(int i=n;i>=1;i--)        //打印出列人编号
	  cout<<L[i];
}

⌨️ 快捷键说明

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