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

📄 例2_6.cpp

📁 《数据结构(C++描述)》-李根强-源代码
💻 CPP
字号:
//约瑟夫问题
#include<iostream.h>
const   int  n =10;
const   int  m=3;
const   int  s = 2;

void josephus(int a[n+1],int m,int s)
{  int i,j,k,w,s1;
for(i=1;i<=n;i++)
a[i]=i;             //存入n个人的编号
s1=s;
for(i=n;i>=2;i--)
{
  s1=(s1+m-1)%i;     //求得出圈人的位置
  if(s1==0)  s1=i;
  w=a[s1];           //w用于存放出圈人的位置
  for(j=s1;j<=i-1;j++)
  a[j]=a[j+1];         //一人出圈后,后面的元素前移
  a[i]=w;            //出圈人的位置存入后面
 }
 for(k=n;k>=1;k--)
 cout<<a[k]<<"  ";   //输出出圈的顺序
 cout<<endl;
}
void main()
{ int i,a[n+1];
for(i=1;i<=n;i++) a[i]=i;
cout<<"出圈的顺序"<<endl;
josephus(a,m,s);
}

⌨️ 快捷键说明

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