求高手 解释 C++ 数组实现约瑟夫环!!!!!

2024-12-18 20:26:34
推荐回答(3个)
回答1:

//你们这些学生就不肯自己懂点脑子吗,刚刚在别的地方回答了一个一摸一样的

#include
int main()
{
const int n=8; //一共8个人
int m=4; //每次往后面数到第4个人干掉
int a[n]; //设置一个8个元素的数组,用来表示8个人

for(int j=0;j a[j]=j+1;

int k=1; //记录我们第几次杀人的变量
int i=-1;

while(1) //杀人大循环,一遍一遍杀人
{

for(int j=0;j {
i=(i+1)%n;
if(a[i]!=0)
j++;
}

if(k==n) //判断一下已经干掉多少人了,如果只剩最后一个人,就停止杀人,退出杀人大循环
break;
cout< a[i]=0; //把表示人数组当中这个人的位置设置成0,表示人已经杀了
k++; //记录我们又杀了一个人
}
cout< return 0;
}

回答2:

复制粘贴...我也懒得动脑子~~~

#include
int main()
{
const int n=8; //一共8个人
int m=4; //每次往后面数到第4个人干掉
int a[n]; //设置一个8个元素的数组,用来表示8个人

for(int j=0;j a[j]=j+1;

int k=1; //记录我们第几次杀人的变量
int i=-1;

while(1) //杀人大循环,一遍一遍杀人
{

for(int j=0;j {
i=(i+1)%n;
if(a[i]!=0)
j++;
}

if(k==n) //判断一下已经干掉多少人了,如果只剩最后一个人,就停止杀人,退出杀人大循环
break;
cout< a[i]=0; //把表示人数组当中这个人的位置设置成0,表示人已经杀了
k++; //记录我们又杀了一个人
}
cout< return 0;
}

回答3:

#include
int main()
{
const int n;
int m=4;
int a[n];

for(int j=0;j<8;j++)
a[j]=j+1;

int k=1;
int i=-1;

for(;;)

for(int j=0;j {
i=(i+1)%n;
if(a[i]!=0)
j++;
}

if(k==n)
break;
cout< a[i]=0;
k++;
}
cout<return 0;
}