void joseph(int N,int M)
{
vector<int> nums;
for(int i=1;i<=N;++i)
{
nums.push_back(i);
}
int sum=N;
int pos=0;
int count=1;
while(sum)
{
if(count==M)
{
cout<<nums[pos]<<" ";
for(int i=pos;i<sum-1;++i)
{
nums[i]=nums[i+1];
}
count=1;
--sum;
}
else
{
++count;
++pos;
pos%=sum;
}
}
}
约瑟夫环(数组实现)
最新推荐文章于 2024-07-11 09:08:25 发布