新手上路 不正确结尾
#include<iostream> using namespace std;
int main()
{ int n; //定义一个整形变量,表示人的个数。
int m; //定义约瑟夫环的参数。
int a[100]; //定义一个数组,用于计算约瑟夫环的位置。
cout<<"input n="; cin>>n;
cout<<"input m=";
cin>>m;
for(int j=0;j<n;j++)
a[j]=j+1; //给数组赋值,让数组的每个值就是这个元素的编号。
int k=1; //定义一个标志k,当K等于N的时候,表示到达约瑟夫环的最后位置。
int i=-1 ;
while(1) {
for(int j=0;j<m;)
{ i=(i+1)%n; //不停的取数组的下一个元素。
if(a[i]!=0)
j++; //如果这个元素没有被标记为0,说明这个位置还没有被排除,j加1,进入下一个循环 }
cout<<a[i]<<endl; //输出出列编号的序列
if(k==n) break; //如果标志K等于n,说明约瑟夫环的循环到达最后一个位置,跳出While死循环。
a[i]=0; //否则,把这个位置的元素设为零,标志它被排除。
k++; }
return 0; }