#include
#include
#include
#define Total 42 //这里是总人数
#define Base 3 //这里定义循环个数,
int main(){
int source[Total]={0};
int i=0;
int alive;
int pos=-1,count=1; //pos是数组中的位置,count定义是约瑟夫环中的位置。
while(count<=Total){ //定义双重循环,大循环是全部的人数,小循环是循环个数;
do{
pos=(pos+1)%Total;
if(source[pos]==0) //如果人还没被排除到环外,算入计数中,否则只是pos向下加。
i++;
if(i==Base)
{
i=0;
break;
}
}while(1);
source[pos]=count;
count++;
}
cout<<"环中对应关系为:"<
cout<if((i+1)%6==0)cout<
cout<
alive=Total-alive; //活着的人必须处于环外,并且在环中的位置大于其他所有人的序号;
for(i=0;i
if(source[i]>alive)
{
cout<<"所处的位置为:"<}
}
cout<
}